2012-05-11 3 views
25

Est-ce le meilleur meilleur moyen d'obtenir une page Web lors du grattage?Html Agility Pack. Charger et gratter la page Web

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; 

J'ai vu HtmlWeb().Load pour obtenir une page Web. Est-ce une meilleure alternative à charger et à gratter la page Web?


Ok, je vais essayer cela à la place.

HtmlDocument doc = web.Load(url); 

Maintenant, quand je suis arrivé mon doc et n'a pas obtenu les propriétés si Mutch. Personne n'aime SelectSingleNode. Le seul que je peux utiliser est GetElementById, et cela fonctionne mais je veux obtenir un cours.

Ai-je besoin de le faire comme ça?

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

Vous pouvez également empiler/ajouter des sections de nœud. Par exemple: var htmlBody = doc.DocumentNode.SelectSingleNode ("// body"). SelectSingleNode ("// pagination"); –

Répondre

62

Beaucoup plus facile à utiliser HtmlWeb.

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

pouvez-vous s'il vous plaît passer par ce lien ..avoir un problème concernant HtmlWeb(). Charger (Url) son chargement pas le contenu complet de la page Web .. s'il vous plaît aidez-moi //// http://stackoverflow.com/questions/18955793/ pourquoi-htmlweb-loadurl-ne-pas-charger-la-page-avec-plein-contenu –