如何通过Python urllib.urlretrieve下载Flickr上的图片?

2 投票
4 回答
2585 浏览
提问于 2025-04-17 04:13

我遇到了一个问题,当我从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。

这可能跟当时的服务器或者你的网络连接有关。

在这里输入图片描述

撰写回答