Python请求403启用Cookie



当我试图从Python应用程序中访问网站时,收到以下403禁止响应。据我所知,CloudFlare没有向我提出任何Captcha的挑战,就像许多其他人的类似问题一样,它要求我启用cookie。如果我通过CURL或任何浏览器尝试,网站会返回200 OK,所以这不是IP限制,只是我不喜欢的Python请求。我尝试过用户代理的各种组合,但都无济于事,尝试过http、https,在目标URL之前什么都不尝试,我完全模仿了浏览器网络检查器在成功的常规浏览器GET的请求标头中显示的内容。

以下是http响应中的错误:(状态403)


请启用Cookie。错误1020射线ID:69c89e49895c40d7•2021-10-11 14:01:04 UTC访问被拒绝发生了什么?此网站正在使用安全服务来保护自己免受网络攻击。Cloudflare Ray ID:69c89e49895c40d7•您的IP:x.x.x.x•性能&Cloudflare的安全性请启用Cookie。


这是我的Python:"r=请求.get("www.oddschecker.com",收割台={"用户代理":"Mozilla/5.0(Windows NT 10.0;WOW64;rv:68.0)Gecko/20100101 Firefox/68.0〃;,"接受":"text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8〃;,"接受语言":"en-GB,en;q=0.5〃;,"方法":"GET";,"内容类型":"文本/纯文本";,"接受编码":"gzip,deflate,br","连接":"保持活力";,"方案":"https";,"升级不安全请求":"1〃;,"高速缓存控制":"最大年龄=0";,"主机":"www.oddschecker.com";,"TE":"拖车";},)

''

问题:

  • CloudFlare是如何从我的Python请求中知道我需要启用cookie,或者我不是一个普通浏览器的?我发送请求并立即得到403回复。该请求与我使用浏览器时的请求完全相同。在我的请求和403之间,网络检查员几乎没有显示一些流量。我也使用了Fiddler,这只是显示了相同的内容:GET请求,立即403响应。

  • 如何在Python中启用cookie?

Python请求库支持添加cookie字典:https://stackoverflow.com/a/7164897/13343799

您可以通过(在Chrome中)单击F12打开开发者选项来查看您的cookie键值对->"应用程序"选项卡->Cookie->选择一个cookie并查看其下方的cookie值。Key在=之前,Value在之后。

最新更新