Html-Agilitätspaket. Laden und scrape Webseite

c# html-agility-pack web-scraping

Frage

Ist dies der beste Weg, um beim Scraping eine Webseite zu bekommen?

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;

Ich habe HtmlWeb().Load , um eine Webseite zu erhalten. Ist das eine bessere Alternative zum Laden und zum Abschaben der Webseite?


Ok, ich werde das stattdessen versuchen.

HtmlDocument doc = web.Load(url);

Jetzt, als ich meinen doc bekam und nicht so viele Eigenschaften bekam. Niemand mag SelectSingleNode . Der einzige, den ich verwenden kann, ist GetElementById , und das funktioniert, aber ich möchte eine Klasse bekommen.

Muss ich es so machen?

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

Beliebte Antwort

Viel einfacher zu verwenden HtmlWeb.

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


Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum