web-dev-qa-db-ja.com

HTML Agility Pack。ウェブページの読み込みとスクレイプ

これは、スクレイピング時にWebページを取得するbestの方法ですか?

_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;
_

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


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

_HtmlDocument doc = web.Load(url);
_

今、私のdocを手に入れたのに、あまりプロパティを取得しませんでした。 SelectSingleNodeのような人はいません。使用できるのはGetElementByIdのみで、これは機能しますが、クラスを取得したいです。

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

_var htmlBody = doc.DocumentNode.SelectSingleNode("//body");
htmlBody.SelectSingleNode("//paging");
_
30
thatsIT

HtmlWebの使用がはるかに簡単になりました。

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