0

我正在尝试使用npm request 和cheerio 来拉取网页并解析它们的html。这适用于根据请求加载 html 的情况。但是我遇到了一个问题,即网站首先加载加载屏幕,然后在片刻之后使用新的信息/元素更新页面。

部分代码:

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。有没有推荐的行动方案?

4

1 回答 1

0

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

查看此答案以获取简短示例。

于 2017-03-01T19:05:56.287 回答