2012-05-11 123 views
25

這是最好方式來獲取網頁時,刮?Html敏捷包。加載和刮網頁

HttpWebRequest oReq = (HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse resp = (HttpWebResponse)oReq.GetResponse(); 

var doc = new HtmlAgilityPack.HtmlDocument(); 

doc.Load(resp.GetResponseStream()); 
var element = doc.GetElementbyId("//start-left"); 
var element2 = doc.DocumentNode.SelectSingleNode("//body"); 
string html = doc.DocumentNode.OuterHtml; 

我看過HtmlWeb().Load可以獲得一個網頁。這是一個更好的替代加載和刮網頁?


好吧,我會嘗試,而不是。

HtmlDocument doc = web.Load(url); 

現在,當我得到了我的doc並沒有得到這樣mutch性能。沒有人喜歡SelectSingleNode。我可以使用的唯一一個是GetElementById,這很有效,但我想要上課。

我需要這樣做嗎?

var htmlBody = doc.DocumentNode.SelectSingleNode("//body"); 
htmlBody.SelectSingleNode("//paging"); 
+0

您也可以堆疊/追加節點slects。例如:var htmlBody = doc.DocumentNode.SelectSingleNode(「// body」)。SelectSingleNode(「// paging」); –

回答

62

更容易使用HtmlWeb。

string Url = "http://something"; 
HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load(Url); 
+0

可以請你通過這個鏈接..有關於HtmlWeb()的一些問題。加載(Url)它不加載網頁的全部內容..請幫助我//// http://stackoverflow.com/questions/18955793/爲什麼-htmlweb-使用loadURL-不加載頁式,與全內容 –