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

问题描述 投票:0回答:3

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

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-浏览器签名:

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

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

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

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

答案相当明确,除了这一件事...... *我没有使用任何浏览器!该请求是通过 python 程序完成的,带有

urllib.urlopen
请求...

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

为什么会发生这种情况?如何绕过它?

javascript python cookies browser urllib
3个回答
16
投票

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


0
投票

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


0
投票

因为我从未见过这个答案 - 我在 MS Edge 上有 3 个浏览器扩展。会议安排程序、Honey 和 Dark Reader(Dark Reader 更改了页面详细信息以使其支持 sudo-dark-mode)。没有任何 CloudFare 网站能让我通过。但在隐身模式下,他们会的。不明白为什么。

我删除了所有三个,CloudFare 不再给我带来问题。

检查您的浏览器扩展。很容易忘记,很可能是一个人行为不当。

© www.soinside.com 2019 - 2024. All rights reserved.