Python 请求 403 启用 Cookie

Posted

技术标签:

【中文标题】Python 请求 403 启用 Cookie【英文标题】:Python Requests 403 Enable Cookies 【发布时间】:2021-12-02 03:23:45 【问题描述】:

尝试从我的 Python 应用程序中访问网站时,我收到以下 403 Forbidden 响应。据我所知,CloudFlare 并没有用任何 Captcha 挑战我,就像许多其他人的类似问题一样,它要求我启用 cookie。如果我通过 CURL 或任何浏览器尝试,该网站返回 200 OK,所以这不是 IP 限制,它只是我不喜欢的 Python 请求。我尝试了用户代理的各种组合但无济于事,在目标 URL 之前尝试了 http、https 和什么都没有,并且我完全模仿了浏览器网络检查器在成功的常规浏览器 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 = requests.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", “方法”:“获取”, “内容类型”:“文本/纯文本”, “接受编码”:“gzip,放气,br”, “连接”:“保持活动”, “方案”:“https”, “升级不安全请求”:“1”, “缓存控制”:“最大年龄=0”, "主机": "www.oddschecker.com", “TE”:“拖车” ,)

'''

问题:

CloudFlare 如何仅通过 Python 请求知道我需要启用 cookie 或者我不是普通浏览器?我发送请求并立即返回 403。该请求与我使用浏览器完全相同。就好像网络检查器上有一些流量在我的请求和 403 之间没有显示。我也使用了 Fiddler,它只是显示相同:GET 请求,立即 403 响应。

如何在 Python 中启用 cookie?

【问题讨论】:

【参考方案1】:

Python Requests 库支持添加 cookie 字典: https://***.com/a/7164897/13343799

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

【讨论】:

感谢您提供的信息,这对 cookie 很有帮助 - 但不确定这如何帮助我解决问题。重申一下:我的 python 似乎正在发送与 Firefox 相同的请求。但我立即得到 403,而 Firefox 得到 200 响应(诚然,其中包含一堆 set-cookies)。所以我什至没有机会执行任何与 cookie 相关的代码。

以上是关于Python 请求 403 启用 Cookie的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 启用 CORS:来自 Safari 的 POST 请求返回 200,Chrome 和 Firefox 返回 403

Azure 存储。得到 403 [url](未启用 CORS 或未找到此请求的匹配规则。)

IDM下载百度资源出现403的解决方法

Spring Boot HEAD 请求返回 403

python请求上的sci-hub响应403错误?

Python 请求。 403 禁止