有没有一种很好的方法来确定twitter搜索API返回了多少页面,或者有没有办法确定返回了多少个值并将其除以每页的twits数?
答案 0 :(得分:8)
没有。 API不公开这个;不是因为它不是一个有用的功能,而是因为提供它的性能方面。
为了获得完整的结果计数,搜索算法必须为每个查询完全迭代其索引。然后当你回到第二页时,它必须从第2页开始迭代它的索引再次给你计数。这意味着获取所有数据将是O(n ^ 2)(因为返回N个页面中的每一个都需要扫描所有后面的页面)而不是预期的O(n)。
因为大多数请求者只需要几页结果,所以查询的常见优化只返回部分结果,只需指向索引即可让搜索在其停止的位置继续。
出于这些原因,大多数高规模的分页API都以类似的方式运行。要获得准确的计数,您必须通过循环遍历页面来强制查询完全迭代其索引。这会带来远程服务的高成本,并且让您多次回来可以使服务适当地限制您的查询,因此不会对其他用户产生负面影响。
答案 1 :(得分:1)
因此,您可能会在页面中运行循环,直到您提供空查询结果。
答案 2 :(得分:1)
值得一提的是,总页数也可能因 rpp 参数而异,后者控制每页返回的推文数(最多100个)。< / p>
根据search API docs,页面参数仅返回最多约1500个结果的页面。
答案 3 :(得分:0)
不,结果不包括页数。 ATOM数据确实包含一个“下一页”元素,您可以迭代地遵循该元素,直到该元素不再存在为止。
<link type="application/atom+xml" rel="next" href="http://search.twitter.com/search.atom?lang=en&max_id=1775692928&page=11&q=YOURQUERY"/>