32

これは、スクレイピング時に 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;

私はHtmlWeb().Loadウェブページを取得するのを見てきました。それは、Webページをロードしてスクレイプするより良い代替手段ですか?


わかりました、代わりに試してみます。

HtmlDocument doc = web.Load(url);

今、私が手に入れたとき、docそれほど多くのプロパティを取得できませんでした。誰も好きではありませんSelectSingleNode。私が使用できる唯一のものはGetElementByIdであり、それは機能しますが、クラスを取得したいです。

このようにする必要がありますか?

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

1 に答える 1

73

HtmlWeb を使用する方がはるかに簡単です。

string Url = "http://something";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(Url);
于 2012-05-11T20:28:13.210 に答える