首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CasperJS登录亚马逊并处理验证码

使用CasperJS登录亚马逊并处理验证码
EN

Stack Overflow用户
提问于 2016-10-04 20:27:05
回答 2查看 4.2K关注 0票数 2

我正在使用PhantomJs和CasperJs登录亚马逊,它工作正常,但在多次登录后,亚马逊给验证码和我的脚本失败。我不知道如何处理登录脚本,如果它有验证码。这是我当前的代码,如果没有验证码,它工作得很好。

代码语言:javascript
复制
var casper = require('casper').create();
var AMAZON_USER = 'amazon-username';
var AMAZON_PASS = 'amazone-password';

casper.start('https://www.amazon.com/gp/wallet', function () {

      this.echo('Loggin into amazon...');
      var emailInput = 'input#ap_email';
      var passInput = 'input#ap_password';

      this.mouseEvent('click', emailInput, '15%', '48%');
      this.sendKeys('input#ap_email', AMAZON_USER);

this.wait(3000, function () {
      this.mouseEvent('click', passInput, '12%', '67%');
      this.sendKeys('input#ap_password', AMAZON_PASS);
      this.mouseEvent('click', 'input#signInSubmit', '50%', '50%');
   });
});

casper.then(function (e) {
      this.capture('amazon.png');//print screen shot after login
});

casper.run();

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-12-15 18:25:54

亚马逊可能正在考虑各种显示验证码的事情。这是我的观察结果。

我遇到了两种类型的亚马逊验证码。

基于浏览器的

  1. 验证码(在PhantomJS端可见。如果通过基于IP的浏览器manually).
  2. Captcha登录,将不可见。原因可能是请求太多。如果通过浏览器手动登录,验证码将可见。

不知道如何解决第二个问题。尝试下面的建议来解决第一个问题。

  1. 在脚本末尾调用phantomjs.exit()。确保exit-method即使在异常发生时也会被调用。
  2. 看起来PhantomJS在退出时不会清除整个缓存。在Ubuntu中,它将一些数据保存在~/.local/share/Ofi Labs/PhantomJS/目录中。因此,在运行脚本之前,请清除目录中的文件。
票数 1
EN

Stack Overflow用户

发布于 2016-10-05 20:53:42

您可以使用deathbycaptcha服务绕过验证码。

他们有非常便宜的价格来解决验证码问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39852337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档