“该网站的所有者已根据您的浏览器签名禁止您访问”......在 python 程序中的 url 请求上

Posted

技术标签:

【中文标题】“该网站的所有者已根据您的浏览器签名禁止您访问”......在 python 程序中的 url 请求上【英文标题】:"The owner of this website has banned your access based on your browser's signature" ... on a url request in a python program 【发布时间】:2014-09-14 19:51:13 【问题描述】:

当使用 urllib2 在 python(准确地说是 Enought Canopy)上进行简单请求时,服务器拒绝我访问:

data = urllib.urlopen(an url i cannot post because of reputation, params)

print data.read()

错误:

Access denied | play.pokemonshowdown.com used CloudFlare to restrict access

The owner of this website (play.pokemonshowdown.com) has banned your access based on your browser's signature (14e894f5bf8d0920-ua48).

这显然是一个普遍的问题,所以我在网上找到了几个线索。

https://support.cloudflare.com/hc/en-us/articles/200171806-Error-1010-The-owner-of-this-website-has-banned-your-access-based-on-your-browser-s-signature:

防火墙、代理、浏览器插件或扩展程序可能会引发误报。尝试使用其他浏览器访问该网站作为访问该网站的替代方式。

https://support.cloudflare.com/hc/en-us/articles/200170176-Why-am-I-getting-a-Checking-your-Browser-before-accessing-message-before-entering-a-site-on-CloudFlare-:

当网站所有者打开名为“我受到攻击”的 DDoS 保护和缓解工具时,会出现“在访问 (insertsite.com) 之前检查您的浏览器。该页面通常会消失并授予您访问5 秒后网站。

注意:您需要在浏览器中打开 javascript 和 Cookie 才能通过检查。检查已到位,以确保您不是僵尸网络的一部分。”

答案很清楚,除了这一件事...... *我没有使用任何浏览器!该请求是通过 python 程序完成的,带有 urllib.urlopen 请求 ...

这是否意味着我应该在... Enthought Canopy 中启用 cookie 和 JavaScript?这句话有任何句子吗?当尝试使用来自编程控制台的基本请求访问该站点时,我几乎不了解此浏览器特定检查激活的任何内容。这就是为什么我请求你的帮助。

为什么会这样?如何绕过?

【问题讨论】:

尝试更改您的用户代理。见this post。 【参考方案1】:

该站点“检查”的不是您的浏览器,而是“用户代理”——您的客户端程序(浏览器、Python 脚本或其他)最终作为请求标头发送的字符串。您可以指定另一个用户代理,参见Changing user agent on urllib2.urlopen。

【讨论】:

我面临同样的问题,我在 php 中更改了 UA,但仍然收到相同的消息。【参考方案2】:

我刚刚从我的家庭 IP 使用 Safari 看到它,正在查看我创作的网站!在登录到 cloudflare 网站并点击刷新后。可能是我的移动互联网太慢(在新西兰)并且 javascript 没有及时加载?我有 DDOS 保护并启用了“受到攻击”的 AFAIK。

【讨论】:

以上是关于“该网站的所有者已根据您的浏览器签名禁止您访问”......在 python 程序中的 url 请求上的主要内容,如果未能解决你的问题,请参考以下文章