我想从flickr下载一些图片。例如,我有这个链接http://www.flickr.com/photos/tonynetone/3717759677/,我想在我的磁盘中保存这个大小有特定名称的图像。这篇link中的文档对我没什么帮助。你能不能请一个给出python代码的例子?
谢谢。
PS:windows
答案 0 :(得分:3)
您需要纯Python解决方案吗?你觉得这样的Bash单线怎么样?
$ curl http://www.flickr.com/photos/tonynetone/3717759677/ | egrep 'http:\\/\\/[^"]*jpg' -o | sed -e 's@\\@@g'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 177k 0 177k 0 0 164k 0 --:--:-- 0:00:01 --:--:-- 309k
http://farm3.staticflickr.com/2567/3717759677_4a520a1dbb_s.jpg
http://farm3.staticflickr.com/2567/3717759677_4a520a1dbb_q.jpg
http://farm3.staticflickr.com/2567/3717759677_4a520a1dbb_t.jpg
http://farm3.staticflickr.com/2567/3717759677_4a520a1dbb_m.jpg
http://farm3.staticflickr.com/2567/3717759677_4a520a1dbb.jpg
http://farm3.staticflickr.com/2567/3717759677_97b2ab3b4d_o.jpg
顺便说一下,你所提到的照片没有“大”选项
也许你的意思是“原创”(_o
)?
import urllib2, re
def download(url, save_name):
html = urllib2.urlopen(url).read()
img_url = re.findall(r'http:[^" \\:]*_b\.jpg', html)[0]
with open(save_name, "wb") as fp:
fp.write(urllib2.urlopen(img_url).read())
download('http://www.flickr.com/photos/91440301@N03/9679566882/sizes/l/', 'elephant.jpg')
使用说明
如果没有“大”选项(文件名以_b.jpg
结尾的照片),则只会引发异常(可能为IndexError
。)请自行抓住。< / p>
仅支持.jpg
请自行确定save_name
。
答案 1 :(得分:2)
我通常下载图片如下
import urllib2
def get_image(url, image_save_name):
try:
image = urllib2.urlopen(url).read()
with open(image_save_name + '.' + url.split('.')[-1], 'wb') as image_file:
image_file.write(image)
image_file.close()
except Exception as e:
print e
get_image('http://farm3.staticflickr.com/2277/2046712361_77f514172f_z.jpg', 'image_save_name')