可以在浏览器上看到图像,但是urllib.url检索()没能把它放下。如何下载?

2024-04-20 11:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

图像路径-->;http://markinternational.info/data/out/366/221983609-black-hd-desktop-wallpaper.jpg

我正在使用的代码

import urllib
urllib.urlretrieve("https://markinternational.info/data/out/366/221983609-black-hd-desktop-wallpaper.jpg" , "photu.jpg")

它返回的内容(对于成功或不成功的尝试,返回相同的结果)

^{pr2}$

有人能帮忙吗?在


Tags: 代码图像gt路径infohttpdataurllib
3条回答

由于您发送的是一个没有任何User-Agent报头的原始http请求,服务器不允许该请求通过。您可以在标题中使用一个定义的User-Agent来模拟它,它将像在浏览器上一样工作。在

url = "https://markinternational.info/data/out/366/221983609-black-hd-desktop-wallpaper.jpg"

req = urllib.request.Request(
    url, 
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

with open('image.jpg', 'wb') as img_file:
    img_file.write(urllib.request.urlopen(req).read())

您需要伪造用户代理来绕过web服务器的此限制。在

我使用Python3和requests库,我设法得到了图片:

import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
url = 'https://markinternational.info/data/out/366/221983609-black-hd-desktop-wallpaper.jpg'
res = requests.get(url, headers=headers)
with open('photo.jpg', 'wb') as W:
    W.write(res.content)

这可能会有帮助。在

import urllib
f = open('photu.jpg','wb')
f.write(urllib.urlopen('https://markinternational.info/data/out/366/221983609-black-hd-desktop-wallpaper.jpg').read())
f.close()

相关问题 更多 >