NodeJS - 请求包含以后加载信息的页面

时间:2017-08-14 19:38:11

标签: javascript node.js ajax request web-crawler

我正在使用nodeJS制作网络抓取工具,它正在工作,它调用页面,我使用cheerio转换为JQuery,并调用标记。

现在我试图调用页面的注释,但问题是,我想要的标记是在Ajax GET请求几秒钟后加载的。我提出的请求承诺无法找到此特定标记,因为它会在以后加载。

我可以通过某种方式找到加载的标签吗?

代码:

   var product = {"product1"}, {"product2"}, {"product3"}
or var product = {"product1", "product2", "product3"}

1 个答案:

答案 0 :(得分:0)

我不相信你能够使用' cheerio'来做到这一点。它解析HTML DOM,但出于所有意图和目的,它不是Web浏览器,因此它不会在页面上执行脚本。您将需要使用CasperJS(由PhantomJS提供支持)来渲染页面,以允许您等待通过脚本加载内容。

CasperJS waitForSelector

编辑:在cheerio文档中。

  

Cheerio不是网络浏览器

     

Cheerio解析标记并提供用于遍历/操纵结果数据结构的API。它不会像Web浏览器那样解释结果。具体来说,它不会生成可视化渲染,应用CSS,加载外部资源或执行JavaScript。如果您的用例需要任何此功能,则应考虑PhantomJS或JSDom等项目。