我正在使用Html Agility Pack从网站获取数据(报废)
我的问题是网站从我获取的数据是加载一些内容后,几秒钟的页面加载。
所以每当我试图从特定的Div中读取特定的数据时,它给我的结果是null。
但是在var page
中,我只是没有得到reviewBox
,..becuase,it还没有加载。
public void FetchAllLinks(String Url)
{
Url = "http://www.tripadvisor.com/";
HtmlDocument page = new HtmlWeb().Load(Url);
var link_list= page.DocumentNode.SelectNodes("//div[@class='reviewBox']");
foreach (var link in link_list)
{
htmlpage.InnerHtml = link.InnerHtml;
}
}
所以有没有人能告诉我如何延迟
HtmlDocument page = new HtmlWeb().Load(Url);
将在page
变量中加载完整数据
发布于 2013-09-24 23:29:49
这不是关于延迟请求。该节点是由使用DOM的javascript填充的,而Html Agility Pack是满足该需求的错误工具(它根本不是web引擎,它只加载基本的Html)。
当我需要处理需要完整的web引擎才能解析的内容时,我通常使用WatiN。它的设计目的是帮助对实际的网页进行单元测试,但这意味着它允许通过给定的浏览器引擎对网页进行编程访问,并加载整个文档。它自带IE或Firefox的开箱即用驱动,我依稀记得Chrome也不难用。
https://stackoverflow.com/questions/18955793
复制相似问题