4

我遇到了 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

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

干杯。

4

2 回答 2

7

经过进一步调查,似乎 API 中内置了一个未记录的“功能”,它永远不允许您从 flickr.photos.search 返回超过 4000 张照片。

因此,虽然有 7444 个页面可用,但它只会让您加载前 1333 个页面。

于 2010-01-03T21:25:06.960 回答
7

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

例如,如果您使用标签“dogs”进行搜索,您可以执行以下操作(在时间范围内进行二分搜索):

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