Python requests.get(URL) 在使用带点的 URL 时返回 404 错误

Posted

技术标签:

【中文标题】Python requests.get(URL) 在使用带点的 URL 时返回 404 错误【英文标题】:Python requests.get(URL) returns 404 error when using URL with dot 【发布时间】:2022-01-13 08:37:07 【问题描述】:

我正在尝试使用 Python 的 Requests 库获取网页 https://finance.yahoo.com/quote/AFLT.ME。

此链接在浏览器中打开良好,但在使用此代码时导致错误 404:

import requests
r = requests.get('https://finance.yahoo.com/quote/AFLT.ME')

我很确定问题出在“AFLT.ME”中的点 (.) 符号中,因为代码适用于不带点的 URL - 例如 https://finance.yahoo.com/quote/AAPL

我已经找到了解决这个问题的答案,但是在网站所有者方面。

但是我该如何解决这个问题呢?

我尝试了一些建议,但不幸的是没有帮助:

将点 . 替换为 %2f,例如 /AFLT%2EME 在末尾添加斜线/,如/AFLT.ME/

【问题讨论】:

【参考方案1】:

奇怪,如果发送User-Agent 标头,即使是空值,它也会以 200 响应:

>>> requests.get('https://finance.yahoo.com/quote/AFLT.ME', headers='User-Agent': '')
<Response [200]>

编辑:这里报告了同样的问题:https://***.com/a/68259438/9835872

【讨论】:

以上是关于Python requests.get(URL) 在使用带点的 URL 时返回 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

Python requests.get(URL) 在使用带点的 URL 时返回 404 错误

Python requests.get 显示 404 而 url 确实存在

大概看了一天python request源码。写下python requests库发送 get,post请求大概过程。

2.Python爬虫入门_requests

Python爬虫笔记(二)requests模块get,post,代理

如何使用 asyncio 在 Python 3 中异步运行 requests.get?