gpt4 book ai didi

python - 如何在 Python 3 中通过 Flickr API 从 Flickr 下载照片

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:43 70 4
gpt4 key购买 nike

菜鸟问题系列...

我是 python 的新手,最近想创建一个小的 python 应用程序,可以根据不同的搜索输入从 flickr 收集照片。 (例如:如果我输入“dog”,它会从 flickr 下载所有的狗图片)

我在网上做了一些研究,发现 flickr API 可能是最好的方法,flickr.photos.getSizes 方法应该是我需要使用的方法。

但是,我在编码时有几个愚蠢的问题:

  1. 我已经为 flickr API 应用了我的 key 和 secret ,我只是不知道下一步如何使用 python 中的 flickr.photos.getSizes 来下载照片。比如,如何在 python 中调用这个方法? (我注意到此方法所需的参数是键和 photo_id,如何根据搜索输入“dog”获取 photo_id)

  2. 然后我按照 https://github.com/alexis-mignon/python-flickr-api/wiki/Tutorial 的教程进行操作但是当我导入 flickr_api 时,我收到了错误消息:

    Could not load all modules
    <class 'ImportError'> No module named 'objects'
    Traceback (most recent call last):
    File "D:/Agfa/Projects/Image/flickr.py", line 2, in <module>
    import flickr_api
    File "D:\Application\Anaconda3\lib\site-packages\flickr_api\__init__.py", line 32, in <module>
    from auth import set_auth_handler
    ImportError: cannot import name 'set_auth_handler'

    然后我看了一下_ init _.py:

    try:
    from objects import *
    import objects
    import upload as Upload
    from upload import upload, replace
    except Exception as e:
    print "Could not load all modules"
    print type(e), e

    from auth import set_auth_handler
    from method_call import enable_cache, disable_cache
    from keys import set_keys
    from _version import __version__

    这个库似乎不支持 python 3,但我不知道该怎么做。 (我无法在我的 python 3 上安装 methond_call、keys、_version)我猜我会使用 flickrapi

非常感谢您的光临,再次感谢。

最佳答案

我想我终于找到了使用 FlickrAPI 的正确方法:

有很多方法,但我想出了 2:

def flickr_walk(keyward):
count = 0
photos = flickr.walk(text=keyward,
tag_mode='all',
tags=keyward,
extras='url_c',
per_page=100)

for photo in photos:
try:
url=photo.get('url_c')
urllib.request.urlretrieve(url, path+'\\' + str(count) +".jpg")
except Exception as e:
print('failed to download image')

flickr.walk 使用 Photos.search API,我也可以直接使用 API:

def flickr_search(keyward):
obj = flickr.photos.search(text=keyward,
tags=keyward,
extras='url_c',
per_page=5)

for photo in obj:
url=photo.get('url_c')
photos = ET.dump(obj)
print (photos)

记得先拿到key和secret:

api_key = 'xxxxxxxxxxxxxxxx'
api_secret = 'xxxxxxxxxxxxx'

flickr=flickrapi.FlickrAPI(api_key,api_secret,cache=True)

关于python - 如何在 Python 3 中通过 Flickr API 从 Flickr 下载照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139124/

70 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com