urlretrieve 不适用于此站点
urlretrieve not working for this site
我正在尝试下载一张图片,但它似乎确实有效。是不是被ddos保护屏蔽了?
代码如下:
urllib.request.urlretrieve("http://archive.is/Xx9t3/scr.png", "test.png")
基本上下载该图像为 "test.png." 我正在使用 python3 因此 urllib.request 在 urlretrieve 之前。
import urllib.request
也有。
有什么办法可以下载图片吗?谢谢!
我建议你使用 requests,基本上 你试图获取图像的方式 是被禁止的,检查一下:
import requests
import shutil
r = requests.get('http://archive.is/Xx9t3/scr.png', stream=True)
if r.status_code == 200:
with open("test.png", 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
此片段改编自
这背后的魔法是如何检索资源的,requests
那部分是stream=True
行。有些服务器使用这种方法更受限制,无法提取媒体等资源。
由于我什至无法想象的原因,服务器需要一个众所周知的用户代理。所以你必须假装使用例如 firefox,它会接受发送图像:
# first build a request object
req = urllib.request.Request("http://archive.is/Xx9t3/scr.png",
headers = {
'User-agent':
'Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0'})
#then use it
resp = urllib.request.urlopen(req)
with open("test.png","wb") as fd:
fd.write(resp.read())
相当愚蠢,但是当服务器管理员发疯时,就和他一样愚蠢...
我正在尝试下载一张图片,但它似乎确实有效。是不是被ddos保护屏蔽了?
代码如下:
urllib.request.urlretrieve("http://archive.is/Xx9t3/scr.png", "test.png")
基本上下载该图像为 "test.png." 我正在使用 python3 因此 urllib.request 在 urlretrieve 之前。
import urllib.request
也有。
有什么办法可以下载图片吗?谢谢!
我建议你使用 requests,基本上 你试图获取图像的方式 是被禁止的,检查一下:
import requests
import shutil
r = requests.get('http://archive.is/Xx9t3/scr.png', stream=True)
if r.status_code == 200:
with open("test.png", 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
此片段改编自
这背后的魔法是如何检索资源的,requests
那部分是stream=True
行。有些服务器使用这种方法更受限制,无法提取媒体等资源。
由于我什至无法想象的原因,服务器需要一个众所周知的用户代理。所以你必须假装使用例如 firefox,它会接受发送图像:
# first build a request object
req = urllib.request.Request("http://archive.is/Xx9t3/scr.png",
headers = {
'User-agent':
'Mozilla/5.0 (Windows NT 5.1; rv:43.0) Gecko/20100101 Firefox/43.0'})
#then use it
resp = urllib.request.urlopen(req)
with open("test.png","wb") as fd:
fd.write(resp.read())
相当愚蠢,但是当服务器管理员发疯时,就和他一样愚蠢...