无法使用ScrapySharp抓取网页数据
问题描述:
我面临一个技术问题,我浏览了几篇文章以找到答案,但是我无法从任何网站获得正确的答案。无法使用ScrapySharp抓取网页数据
我为我的项目使用ScrapySharp来抓取网页数据。当我尝试从http://edition.cnn.com/POLITICS网站抓取数据时,就出现了这个问题。
首先,我通过IE加载页面,并选择开发人员工具检查标签。后的I选择了我需要我的代码标记“// DIV [@类=‘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
当我深入调查时,我看到的是上面提到的cd__content是在“SECTION”标签内部加载“SECTION”标签时为空的。但是,当我通过IE或Chrome浏览器检查时,所有标签都充满了信息,这就是为什么我可以选择该元素,但是当我以编程方式加载页面时,它不会。 我的问题是,如何使用ScrapySharp填充所有信息来加载页面。
专家,请帮忙。
答
如果您分析页面的网络流量,您会看到javascript会为页面上的每个“内容区域”加载http://edition.cnn.com/data/ocs/section/politics/index.html
的内容。对这些请求的响应包含页面中显示的HTML和内容。
您将需要审查和自己做出类似的请求,或者看看是否一个或更多的RSS feeds的满足您的需求,并有更多的语法分析集的内容提供您 - 例如:http://rss.cnn.com/rss/cnn_allpolitics.rss
没有你检查rootPage对象,你有没有得到实际的HTML?它是否拥有它应该拥有的所有HTML内容?如果问题可能出现在你的xpath中。 – Nick