【发布时间】:2017-09-09 10:56:09
【问题描述】:
我面临一个技术问题,我浏览了几篇文章以找到答案,但我无法从任何网站获得正确答案。
我在我的项目中使用 ScrapySharp 来抓取网页数据。当我尝试从http://edition.cnn.com/POLITICS 网站爬取数据时出现此问题。
首先,我通过 IE 加载页面,并选择开发者工具来检查标签。在我为我的代码“//div[@class='cd__content']”选择了我需要的标签之后,此外,当我通过 ScrapySharp 加载上述网页时
ScrapingBrowser browser = new ScrapingBrowser();
WebPage rootPage = browser.NavigateToPageAsync(new Uri(url));
HtmlNodeCollection rootNodes = rootPage.Html.SelectNodes("//div[@class='cd__content']");
rootNodes 的结果显示为 null
当我深入调查时,我看到当页面加载“SECTION”标签为空时,上面提到的cd__content在“SECTION”标签内。但是当我通过 IE 或 Chrome 进行检查时,所有标签都充满了信息,这就是为什么我可以选择元素,但是当我以编程方式加载页面时它不会。 我的问题是,如何加载页面并使用 ScrapySharp 填充所有信息。
专家,请帮忙。
【问题讨论】:
-
你检查了 rootPage 对象,你在那里得到了实际的 HTML 吗?它是否具有应有的所有 HTML 内容?如果是,问题可能出在您的 xpath 中。
标签: c# asp.net-web-api2 scrapysharp