使用节点提取跳过等待时间

时间:2018-06-10 10:24:21

标签: node.js cheerio node-fetch

我使用node-fetchcheerio来抓取comic website中的数据。我只是使用一个简单的代码来显示如下所示的正文html:

var fetch = require('node-fetch');
var cheerio = require('cheerio');

var url = 'http://readcomiconline.to';

function getComic() {
    fetch(url)
        .then(res => res.text())
        .then(body => console.log(body));
}

getComic();

问题是这个页面使用了一个javascript代码,客户端需要在重定向到主页面之前等待5秒钟,所以在加载主页面之前我无法抓取任何内容。

如何跳过此时间并开始抓取页面中的数据。

谢谢。

2 个答案:

答案 0 :(得分:2)

看起来你需要的不仅仅是这两个模块。

您尝试抓取的网站使用JS向/cdn-cgi/l/chk_jschl发送验证并获取Cookie。您可以使用selenium或反转js。

此处有更多信息:Python web scraping : 503 Response with specific site (how come?)

答案 1 :(得分:0)

您不需要等待5秒钟,因为它将在浏览器中运行。

您具有表单Promise,使用cheerio来获取表单的#challenge-formurl和数据(输入值),并请求它(保存cookie)。 / p>

您可以使用method(Chrome浏览器,或类似的浏览器中的检查形式的请求)。

这是我尝试登录devtoolindex.js的项目,可能会对您有所帮助。