Paquete de agilidad HTML. Cargar y raspar página web

c# html-agility-pack web-scraping

Pregunta

¿Es esta la mejor manera de obtener una página web al raspar?

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;

He visto HtmlWeb().Load para obtener una página web. ¿Es esa una mejor alternativa para cargar y raspar la página web?


Ok, lo intentaré en su lugar.

HtmlDocument doc = web.Load(url);

Ahora, cuando obtuve mi doc y no obtuve tantas propiedades de mutch. A nadie le gusta SelectSingleNode . El único que puedo usar es GetElementById , y eso funciona, pero quiero obtener una clase.

¿Necesito hacerlo así?

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

Respuesta popular

Mucho más fácil de usar HtmlWeb.

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué