Html敏捷包。加载和抓取网页

时间:2012-05-11 20:24:27

标签: c# web-scraping html-agility-pack

这是抓取时获取网页的最佳方式吗?

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来获取网页。这是一个更好的替代加载和刮网页吗?


好的,我会试试。

HtmlDocument doc = web.Load(url);

现在,当我得到我的doc并且没有得到如此变异的属性。没人喜欢SelectSingleNode。我可以使用的唯一一个是GetElementById,这可行,但我想上课。

我需要这样做吗?

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

1 个答案:

答案 0 :(得分:70)

使用HtmlWeb更容易。

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