Flickr API返回重复的照片

时间:2010-01-03 05:00:31

标签: flickr

我遇到了flickr API的一个令人困惑的问题。

当我进行照片搜索(flickr.photos.search)并请求高页码时,我 经常会为不同的页码返回重复的照片。 这是三个URL,它们应该各自返回三组不同的图像, 然而,他们 - 奇怪 - 返回相同的图像:

http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ca3035f67faa0fcc72b74cf6e396e6a7&tags=gizmo&tag_mode=all&per_page=3&page=6820
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ca3035f67faa0fcc72b74cf6e396e6a7&tags=gizmo&tag_mode=all&per_page=3&page=6821
http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ca3035f67faa0fcc72b74cf6e396e6a7&tags=gizmo&tag_mode=all&per_page=3&page=6822

还有其他人遇到过这个吗? 我似乎能够在任何标签搜索上重新创建它。

干杯。

2 个答案:

答案 0 :(得分:6)

经过进一步调查后,似乎有一个未记录的“功能”构建到API中,它永远不会让你从flickr.photos.search返回超过4000张照片。

因此,虽然7444页面可用,但它只允许您加载第一个1333页。

答案 1 :(得分:6)

可以从flickr中检索超过4000张图像;您的查询必须通过(例如)时间范围进行分页,以使该查询中的图像总数不超过4000.您还可以使用其他参数(如边界框)来限制响应中的图像总数。

例如,如果您使用标记' dog'进行搜索,则可以执行此操作(二进制搜索时间范围):

  1. 在请求网址中指定最短日期和最长日期,例如1990年1月1日和2015年1月1日。
  2. 检查响应中的图像总数。如果它超过4000,则将时间范围划分为两个并在前半部分工作,直到从查询中获得少于4000个图像。一旦你得到它,请求该时间范围内的所有页面,然后继续下一个间隔并执行相同的操作直到(a)满足所需图像的数量(b)在整个初始时间间隔内搜索。