3

有没有一种好方法可以确定 twitter 搜索 api 返回了多少页面,或者有没有一种方法可以确定返回了多少值并将其除以每页的推文数?

4

4 回答 4

8

不。API 不公开这个;不是因为它不是一个有用的功能,而是因为提供它的性能方面。

为了获得完整的结果计数,搜索算法有必要对每个查询完全迭代其索引。然后,当您返回第二页时,它必须从第 2 页开始迭代其索引以再次为您提供计数。这意味着获取所有数据将是 O(n^2)(因为返回 N 个页面中的每一个都需要扫描所有后面的页面)而不是预期的 O(n)。

因为大多数请求者只想要几页结果,所以查询只返回部分结果是一种常见的优化,只返回一个指向索引的指针以允许搜索在它停止的点继续。

由于这些原因,大多数大规模分页 API 的行为方式类似。要获得准确的计数,您必须通过遍历页面来强制查询完全迭代其索引。这给远程服务带来了高成本,并且让您多次返回允许服务适当地限制您的查询,因此它不会对其他用户产生负面影响。

于 2009-05-12T20:39:54.903 回答
1

因此,您可能会在页面中运行一个循环,直到您提供一个空的查询结果。

于 2009-05-12T19:51:25.030 回答
1

值得一提的是,总页数也可以根据控制每页返回的推文数量(最多 100 条)的rpp参数而变化。

根据search API docspage参数只返回最多约 1500 个总结果的页面。

于 2009-05-12T20:44:37.470 回答
0

不,结果不包括页数。ATOM 数据确实包含一个“下一页”元素,您可以迭代地遵循该元素,直到该元素不再存在。

<link type="application/atom+xml" rel="next" href="http://search.twitter.com/search.atom?lang=en&amp;max_id=1775692928&amp;page=11&amp;q=YOURQUERY"/>
于 2009-05-12T19:43:57.787 回答