图片路径 - > 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")
它返回的内容(对于成功或不成功的尝试返回相同的内容)
('photu.jpg', <httplib.HTTPMessage instance at 0x7fe3cfb27d88>)
有人可以帮忙吗?
答案 0 :(得分:1)
这可能会有所帮助。
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()
答案 1 :(得分:1)
您需要伪造用户代理以绕过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)
答案 2 :(得分:1)
由于您发送的原始http请求没有任何User-Agent
标头,因此服务器不允许请求通过。您可以使用标头中定义的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())