【问题标题】:Phantomjs / Casperjs now does not work website detects botPhantomjs / Casperjs 现在不起作用网站检测到机器人
【发布时间】:2017-10-04 05:19:28
【问题描述】:

我的脚本已经停止工作 2 天了。如果我从任何浏览器(Chrome、Mozilla 等)手动执行工作,没问题。我认为问题应该出在phantojs的标题中。你怎么能像普通浏览器一样模拟 phantomjs 中的标头?下面的这些行是我使用 pantomjs / casperjs 访问时网站向我显示的内容

请原谅我们的打扰...

当您浏览有关您的浏览器的某些内容时,我们认为您是机器人。发生这种情况的原因有几个:

您是以超人的速度浏览此网站的高级用户。 您已在 Web 浏览器中禁用 JavaScript。 第三方浏览器插件(例如 Ghostery 或 NoScript)正在阻止 JavaScript 运行。此支持文章中提供了更多信息。

完成下面的验证码后,您将立即重新获得访问权限

在我的脚本中,我有这样的配置:

var casper = require("casper").create ({
	engine: 'phantomjs', 
    exitOnError: false,
    ignoreSslErrors: true,
    waitTimeout: 5000,
    stepTimeout: 5000,
    verbose: true,
 
  pageSettings: {
        webSecurityEnabled: false,
        javascriptEnabled: true,
        loadImages: true,
        loadPlugins: true,
        localToRemoteUrlAccessEnabled: true,
        userAgent: 'Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36',
        XSSAuditingEnabled: false,
        logLevel: 'debug'
  },
  onWaitTimeout: function() {
       // this.echo('** Wait-TimeOut **');
  },
  onStepTimeout: function() {
        //this.echo('** Step-TimeOut **');
  }
});

【问题讨论】:

  • 我尝试过使用 slimerjs,放弃无头浏览器......同样的事情仍在发生。如果有人帮助我,我会很高兴!!!

标签: javascript header phantomjs casperjs


【解决方案1】:

首先要做的事:如果第三方网站花费大量精力来检测机器人,他们可能不希望您使用机器人,因此您可能应该遵守。

关于PhantomJS的检测方法:有很多,从请求头的错误顺序,媒体插件的缺失到特定的方法,甚至在错误堆栈跟踪中披露phantomjs。

以下是关于此事的精彩介绍:Detecting headless browsers

我知道只提供指向远程页面的链接是不受欢迎的,但这里有太多太多不同的地方需要提及,它们都应该在反检测工作中得到解决。

奖励建议:如果您对 PhantomJS 基础架构不太投入,请查看 puppeteer

【讨论】:

  • 兼容 phantomjs 吗?
  • 不,但非常相似。
【解决方案2】:

总体上可以提供帮助的事情:

  • Headers 应该与普通浏览器类似,包括:
  • 导航:
    • 如果您发出多个请求,请在它们之间放置一个随机超时
    • 如果您打开页面中的链接,请相应地设置 Referer 标题
    • 或者更好的是,模拟鼠标活动来移动、点击和跟随链接
  • 图片应该启用
  • Javascript 应该启用
    • 检查客户端 JavaScript 页面上下文中是否设置了“navigator.plugins”和“navigator.language
    • 检查您使用的客户端没有注入明显的 javascript 变量(如 _cdc、__nightmare...)
  • 使用代理

【讨论】:

    猜你喜欢
    • 2017-06-09
    • 2018-06-05
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多