如何通过Python urllib.urlretrieve下载Flickr上的图片?
我遇到了一个问题,当我从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文件时失败了!我该怎么办呢?谢谢~~~
任何建议都很感激~~~
4 个回答
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)
0
可以考虑使用urllib2
这个库,它让你可以设置超时时间(适用于Python 2.6及以上版本)。
1
我无法重现这个问题。
完全相同的代码可以下载图片。
我使用的是Python 2.7。
这可能跟当时的服务器或者你的网络连接有关。