Pack d'agilité HTML. Charger et gratter une page Web

c# html-agility-pack web-scraping

Question

Est-ce le meilleur moyen d’obtenir une page Web lors du grattage?

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 pour charger et gratter la page Web?


Ok, je vais essayer ça à la place.

HtmlDocument doc = web.Load(url);

Maintenant, quand j'ai eu mon doc et que je n'ai pas eu de telles propriétés. Personne comme SelectSingleNode . Le seul que je peux utiliser est GetElementById , et cela fonctionne, mais je souhaite obtenir une classe.

Dois-je le faire comme ça?

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

Réponse populaire

Beaucoup plus facile à utiliser HtmlWeb.

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi