2012-05-11 20 views
25

en iyi kazıma sırasında bir web sayfası almanın yolu bu mu?Html Agility Pack. Web sayfasını yükleyin ve kazıyın

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; 

Web sayfası almak için HtmlWeb().Load numaralı telefonu gördüm. Bu, web sayfasının yüklenmesi ve kazılması için daha iyi bir alternatif midir?


Tamam, bunu yerine deneyeceğim.

HtmlDocument doc = web.Load(url); 

benim doc var ve çok mutch özelliklerini alamadım Şimdi zaman. Kimse SelectSingleNode'u sevmez. Kullanabileceğim tek kişi GetElementById'dur ve bu işe yarıyor ama bir ders almak istemiyorum.

Böyle yapmam gerekiyor mu?

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

Düğüm yuvalarını da yığabilir/ekleyebilirsiniz. örneğin: var htmlBody = doc.DocumentNode.SelectSingleNode ("// body") SelectSingleNode ("// sayfalama"); –

cevap

62

HtmlWeb'i kullanmak çok daha kolay.

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

bu bağlantı üzerinden geçebilir lütfen .. HtmlWeb() ile ilgili bazı sorun.Alt (Url), web sayfasının tam içerik yükleme değil .. lütfen bana yardım edin //// http://stackoverflow.com/questions/18955793/ neden-htmlweb-loadURL-olmayan yüklemeli-sayfalık-with-full-içerik –

İlgili konular