我正面临技术问题,我浏览了几篇文章以找到答案,但我无法从任何网站上得到正确答案。
我正在使用ScrapySharp为我的项目抓取网页数据。当我尝试从http://edition.cnn.com/POLITICS网站抓取数据时出现此问题。
首先,我通过IE加载页面,然后选择了Developer工具来检查标签。在我为我的代码选择了我需要的标签" // 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
当我深入调查时,我看到的是上面提到的cd__content在" SECTION"页面加载时标记“SECTION”标记为空。但是当我通过IE或Chrome检查时,所有标签都充满了我能够选择元素的信息,但是当我以编程方式加载页面时它不会。 我的问题是,如何使用ScrapySharp加载页面并填写所有信息。
专家,请帮忙。
答案 0 :(得分:0)
如果您分析网页的网络流量,您会看到javascript会对页面上的每个“内容区域”的{{1}}加载内容进行多次调用。对这些请求的响应包含页面中显示的HTML和内容。
您需要自行审核并提出类似请求,或查看他们的RSS feeds中的一个或多个是否满足您的需求,并为您提供更易解析的内容集 - 例如:{{3 }}