Flickr API返回重复的照片

d2k*_*agw 4 flickr

我遇到了一个关于flickr API的令人困惑的问题.

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

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
Run Code Online (Sandbox Code Playgroud)

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

干杯.

d2k*_*agw 6

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

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


小智 6

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

例如,如果您使用标签'dogs'进行搜索,则可以执行以下操作(二进制搜索随时间变化):

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