下载特定网址的flickr图片

时间:2014-02-10 09:29:26

标签: python flickr

我想从flickr下载一些图片。例如,我有这个链接http://www.flickr.com/photos/tonynetone/3717759677/,我想在我的磁盘中保存这个大小有特定名称的图像。这篇link中的文档对我没什么帮助。你能不能请一个给出python代码的例子?

谢谢。

PS:windows

2 个答案:

答案 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')

使用说明

  1. 如果没有“大”选项(文件名以_b.jpg结尾的照片),则只会引发异常(可能为IndexError。)请自行抓住。< / p>

  2. 仅支持.jpg

  3. 请自行确定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')