【问题标题】:Can't load json from url with Casper Js -> "Loading resource failed with status=fail"无法使用 Casper Js 从 url 加载 json ->“加载资源失败,状态 = 失败”
【发布时间】:2015-05-22 15:31:35
【问题描述】:

我是 casper js 的新手,我想从 get 请求中检索一个 json 对象。 我收到的消息如下:

加载资源失败,status=fail:https://api.twitter.com/1.1/search/tweets.json?q=casperjs

这是我的代码:

var casper = require('casper').create({
  verbose: true,
  logLevel: 'debug',
  pageSettings: {
    loadImages: false,
    loadPlugins: false,
    userAgent: 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36'
  }
});


casper.start().then(function() {
    this.open('https://api.twitter.com/1.1/search/tweets.json?q=casperjs', {
        method: 'get',
        headers: {
            'Accept': 'application/json'
        }
    });
});

casper.then(function() {
    require('utils').dump(JSON.parse(this.getPageContent()));
});

casper.run(function() {
    this.exit();
});

我花了很多时间来了解出了什么问题,但没有成功。我没有在堆栈上发现其他类似的问题......这意味着我必须做错事。

感谢您的帮助

我的配置(来自 brew info):

  • casperjs:稳定版 1.0.4(瓶装),开发版 1.1-beta3,HEAD
  • phantomjs:稳定 2.0.0(瓶装),HEAD

【问题讨论】:

  • 无法在 windows 上使用 CasperJS master 和 PhantomJS 2.0.0 重现您的问题。
  • 可能是因为我在mac上,因为casperjs的master分支托管了开发版本。
  • 这样的问题不应该来自 CasperJS。也许这是一个 SSL 问题。您是否尝试过使用一些可用的命令行选项,例如 --ssl-protocol=any--ignore-ssl-errors=true
  • 它适用于--ignore-ssl-errors=true,但不适用于--ssl-protocol=any...我真的不明白为什么?无论如何,非常感谢您的帮助!

标签: javascript json get phantomjs casperjs


【解决方案1】:

正如@Artjom B. 所建议的,我使用了以下命令行选项--ignore-ssl-errors=true并且文件成功加载了json。

【讨论】:

    【解决方案2】:

    如果您正在使用代理,请确保代理正常工作并确保代理已正确验证。

    如果它没有通过身份验证,那么它只会返回一个查找失败,而不是将您指向代理作为问题

    【讨论】:

      猜你喜欢
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2012-07-24
      • 2018-01-15
      • 2013-02-26
      • 2019-05-28
      • 2016-06-24
      相关资源
      最近更新 更多