如何解决无法从 requests.get 获取图像
我有 2 张图像要在 python 中使用一些逻辑进行处理。 这是图像的 2 个 URL:
https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png https://www.hogan.com/fashion/hogan/HXW4350DM10NCR0RSZ/HXW4350DM10NCR0RSZ-02.png
为了获得这些图像,我编写了以下脚本:
import requests
from PIL import Image
from io import BytesIO
url = "https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img.show()
这段代码没问题,我正确地得到了图像。
url = "https://www.hogan.com/fashion/hogan/HXW4350DM10NCR0RSZ/HXW4350DM10NCR0RSZ-02.png"
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img.show()
任何帮助将不胜感激。
蟒蛇 3.9.4 请求 2.25.1
解决方法
那是因为第二个网址需要一个重要的标头参数,user-agent
让我们将其添加到您的请求中:
import requests
from PIL import Image
from io import BytesIO
url = "https://www.hogan.com/fashion/hogan/HXW4350DM10NCR0RSZ/HXW4350DM10NCR0RSZ-02.png"
headers = {
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/87.0.4280.141 Safari/537.36"
}
response = requests.get(url,headers=headers)
img = Image.open(BytesIO(response.content))
img.show()
我们如何知道某个网站是否需要用户代理?
我们只是不知道,但我们假设如果浏览器可以正确获取图像而一个简单的请求没有,那么它就缺少一些东西,并且大多数网站都需要标头来验证您的请求
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。