【发布时间】:2019-10-05 00:11:15
【问题描述】:
我正在加载一个 URL,并且正在寻找一个应该存在于 HTML 文档中的特定节点,但它每次都返回 null。事实上,我试图找到的每个节点都返回 null。我在其他网页上使用过相同的代码,但由于某种原因,在这种情况下它不起作用。 HtmlDoc 加载的内容是否与我在浏览器中看到的源代码不同?
我显然是网络抓取的新手,但我曾多次遇到此类问题,因为我无法选择可以在浏览器中看到的节点,因此我必须制定详细的解决方法。我的处理方式有什么根本错误吗?
string[] arr = { "abercrombie", "adt" };
for(int i=0;i<1;i++)
{
string url = @"https://www.google.com/search?rlz=1C1CHBF_enCA834CA834&ei=lsfeXKqsCKOzggf9ub3ICg&q=" + arr[i] + "+ticker" + "&oq=abercrombie+ticker&gs_l=psy-ab.3..35i39j0j0i22i30l2.102876.105833..106007...0.0..0.134.1388.9j5......0....1..gws-wiz.......0i71j0i67j0i131j0i131i67j0i20i263j0i10j0i22i10i30.3zqfY4KZsOg";
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(url);
var node = htmlDoc.DocumentNode.SelectSingleNode("//span[@class = 'HfMth']");
Console.WriteLine(node.InnerHtml);
}
更新
感谢 RobertBaron 为我指明了正确的方向。这是一个很棒的复制粘贴solution。
【问题讨论】:
标签: c# html web-scraping webbrowser-control html-agility-pack