2017-02-14 45 views
0

我正在尝试使用npm请求和cheerio来拉动网页并解析它们的html。这适用于根据请求加载html的情况。但我遇到了一个问题,即网站首先加载加载屏幕,然后在一段时间后用新的信息/元素更新页面。阅读正文前的npm请求等待

部分代码:

var url = 'website with loading screen prior to content.com'; 
var request = require('request'); 
request(url, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log(body) // Show the HTML for the Google homepage. 
    } 
}) 

我想什么 - 不必等待一个特定的元素显示在页面上,然后读身体的能力,要么请求。或能够等待一个固定的秒数,然后阅读身体

其他选项 - 它可能不可能与npm请求,这很好。如果是这种情况,请您指出正确的方向。我正在考虑的其他选项是使用webdriver.io或phantomjs。对此有没有推荐的行动方案?

回答

0

不幸的是,在获得响应之前,没有办法将request配置为在请求发起之后“等待”。最好的办法是检查PhantomJS。这是一个无头浏览器,您可以使用它来加载和渲染页面,然后通过javascript访问动态生成的内容。

查看这个answer的简单例子。

+0

谢谢,我列出phantomjs作为我的问题的一个可能的选项。我实际上最终取得了一些成功。 –

+1

@alex_milhouse很酷。这是一个很好的包装。 – jordanwillis