我有一个问题,当从flickr.com下载图像时,python函数urllib.urlretrieve()
总是返回错误
[Errno socket error] (10060, 'Operation timed out')
例如:
import urllib
url = "http://farm3.static.flickr.com/2659/4207030547_23e6000d29_o.gif"
urllib.urlretrieve(url,"C://tmp.gif")
我是中国人,我不知道“超时”是否与中国互联网的速度有关。
现在它在击败.gif时失败了!我该怎么办? THX ~~~
任何建议都表示赞赏~~~
答案 0 :(得分:1)
我无法重现。
完全相同的代码下载了图片。
我正在使用python 2.7
它必须与服务器(当时)或您的互联网连接。
答案 1 :(得分:0)
请考虑使用urllib2
库,它允许您指定超时(在Python 2.6 +中)。
答案 2 :(得分:0)
您无法从flickr下载图像的原因是,中国有一个怪异的墙在挡住您!您可以尝试使用在您的计算机上全局运行的VPN(这样python程序也可以在此VPN环境下运行), 或者,
您将代理设置为requests
,然后您可以从那些被中国屏蔽的网站上下载图片。
import requests
proxies = {
“http”: “http://10.10.10.10:8000”, # just an example
“https”: “http://10.10.10.10:8000”, # just an example
}
r = requests.get(“http://example_url.com”, proxies=proxies)
答案 3 :(得分:0)
尝试“获取”方法。我最近不得不做同样的事情,并通过以下方法解决了这个问题:
import requests
url = "https://www.python.org/static/community_logos/python-logo-master-v3-TM.png"
try:
r = requests.get(url,allow_redirects = True)
if(r.status_code == 200):
open("Image.jpg","wb").write(r.content)
elif(r.status_code == 404):
print("Image not found at the URL")
else:
print("Unknown error occurred.")
except:
print("Could not establish connection with the site URL.")