【问题标题】:Skip waiting time using node-fetch使用 node-fetch 跳过等待时间
【发布时间】:2018-11-19 19:38:46
【问题描述】:

我使用node-fetchcheeriocomic 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 秒内等待它重定向到主页,所以在主页加载之前我无法抓取任何东西。

如何跳过这段时间并开始从页面中抓取数据。

谢谢。

【问题讨论】:

  • 加载界面只显示一次
  • @sorxrob 是的,我知道,但我怎么能跳过呢?

标签: node.js cheerio node-fetch


【解决方案1】:

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

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

更多信息在这里:Python web scraping : 503 Response with specific site (how come?)

【讨论】:

    【解决方案2】:

    你不需要等待5s,因为它会在浏览器中运行。

    您有表单#challenge-form,使用cheerio 获取表单的urlmethod 和数据(输入值),并请求它(保存cookie)。

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

    这是我尝试登录facebook:index.js的项目,它可能对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      相关资源
      最近更新 更多