python flickr api 进行群组搜索并获取图像数据集
python flickr api for group search and get image data set
有没有 python flickr api 我可以打群 url 并获得所有最新的图像数据?
我有一个 url 喜欢:
https://www.flickr.com/groups/caterpillarequipment/
我想获取所有最新的图像数据集。
我尝试用 flickrapi lib 来做,但到目前为止我能想出任何方法。
我是 flickr 的新手 api 不知道如何获取这些数据。
如果您想获取群组池的所有信息,请使用 flickr.groups.pools.getPhotos
API 调用,如下所示:
import flickrapi
from pprint import pprint
api_key = 'your api key'
secret = 'your secret key'
flickr = flickrapi.FlickrAPI(api_key, secret, format='parsed-json')
group_id = '544735@N20' # caterpillarequipment's group_id
response = flickr.groups.pools.getPhotos(group_id=group_id, per_page=3)
pprint(response)
{u'photos': {u'page': 1,
u'pages': 1033,
u'perpage': 3,
u'photo': [{u'dateadded': u'1428715622',
u'farm': 8,
u'id': u'16912446348',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'71639059@N00',
u'ownername': u'ocrr4204',
u'secret': u'311b63f966',
u'server': u'7685',
u'title': u'Dufresne Construction 146 a CAT D7H bulldozer Ottawa, Ontario Canada 04252007 \xa9Ian A. McCord'},
{u'dateadded': u'1428713719',
u'farm': 8,
u'id': u'16896411327',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'62532775@N03',
u'ownername': u'Jibup',
u'secret': u'76dc9110ed',
u'server': u'7695',
u'title': u'Caterpillar'},
{u'dateadded': u'1428554028',
u'farm': 8,
u'id': u'17058845816',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'73369431@N07',
u'ownername': u'Stephen Ball Photography',
u'secret': u'607f522144',
u'server': u'7705',
u'title': u'One Up One Down'}],
u'total': u'3097'},
u'stat': u'ok'}
出于演示目的,我使用了 3 的小页面大小 - 默认值为 100,最大值为 500。这意味着您需要多次调用该服务才能检索所有照片。你可以这样循环:
group_pool_photos = []
group_id = '544735@N20' # caterpillarequipment's group_id
page = 1
success = True
while True:
response = flickr.groups.pools.getPhotos(group_id=group_id, page=page)
if response['stat'] != 'ok':
print 'Error occurred in flickr.groups.pools.getPhotos'
pprint(response)
success = False
break
if len(response['photos']['photo']) == 0:
break
group_pool_photos.extend(response['photos']['photo'])
page += 1
if success:
print 'Info for all pool photos successfully retrieved. Total photos {}'.format(len(group_pool_photos))
最后 group_pool_photos
应该包含所有照片信息。
N.B。由于在检索过程中添加或删除照片,池可能会发生变化,因此您可能希望通过比较连续响应中的总数来尝试检测这一点。
有没有 python flickr api 我可以打群 url 并获得所有最新的图像数据?
我有一个 url 喜欢:
https://www.flickr.com/groups/caterpillarequipment/
我想获取所有最新的图像数据集。 我尝试用 flickrapi lib 来做,但到目前为止我能想出任何方法。 我是 flickr 的新手 api 不知道如何获取这些数据。
如果您想获取群组池的所有信息,请使用 flickr.groups.pools.getPhotos
API 调用,如下所示:
import flickrapi
from pprint import pprint
api_key = 'your api key'
secret = 'your secret key'
flickr = flickrapi.FlickrAPI(api_key, secret, format='parsed-json')
group_id = '544735@N20' # caterpillarequipment's group_id
response = flickr.groups.pools.getPhotos(group_id=group_id, per_page=3)
pprint(response)
{u'photos': {u'page': 1,
u'pages': 1033,
u'perpage': 3,
u'photo': [{u'dateadded': u'1428715622',
u'farm': 8,
u'id': u'16912446348',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'71639059@N00',
u'ownername': u'ocrr4204',
u'secret': u'311b63f966',
u'server': u'7685',
u'title': u'Dufresne Construction 146 a CAT D7H bulldozer Ottawa, Ontario Canada 04252007 \xa9Ian A. McCord'},
{u'dateadded': u'1428713719',
u'farm': 8,
u'id': u'16896411327',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'62532775@N03',
u'ownername': u'Jibup',
u'secret': u'76dc9110ed',
u'server': u'7695',
u'title': u'Caterpillar'},
{u'dateadded': u'1428554028',
u'farm': 8,
u'id': u'17058845816',
u'isfamily': 0,
u'isfriend': 0,
u'ispublic': 1,
u'owner': u'73369431@N07',
u'ownername': u'Stephen Ball Photography',
u'secret': u'607f522144',
u'server': u'7705',
u'title': u'One Up One Down'}],
u'total': u'3097'},
u'stat': u'ok'}
出于演示目的,我使用了 3 的小页面大小 - 默认值为 100,最大值为 500。这意味着您需要多次调用该服务才能检索所有照片。你可以这样循环:
group_pool_photos = []
group_id = '544735@N20' # caterpillarequipment's group_id
page = 1
success = True
while True:
response = flickr.groups.pools.getPhotos(group_id=group_id, page=page)
if response['stat'] != 'ok':
print 'Error occurred in flickr.groups.pools.getPhotos'
pprint(response)
success = False
break
if len(response['photos']['photo']) == 0:
break
group_pool_photos.extend(response['photos']['photo'])
page += 1
if success:
print 'Info for all pool photos successfully retrieved. Total photos {}'.format(len(group_pool_photos))
最后 group_pool_photos
应该包含所有照片信息。
N.B。由于在检索过程中添加或删除照片,池可能会发生变化,因此您可能希望通过比较连续响应中的总数来尝试检测这一点。