在下面的代码中,我指定我想要向twitter api发出1个请求,但是当我将输出puts
到终端时,我继续收到许多响应,直到我终止程序。如何将其限制为仅指定的请求数量?我是ruby的新手,所以我可能在这里错过了一些明显的东西。
twitter gem api的文档
require 'twitter'
...
client = Twitter::REST::Client.new do |config|
config.consumer_key = credentials[:consumer_key]
config.consumer_secret = credentials[:consumer_secret]
config.access_token = credentials[:access_token]
config.access_token_secret = credentials[:access_token_secret]
end
search_results = client.search "China", {:count => 1, :lang => 'en', :result_type => 'recent'}
search_results.each do |value|
puts value.user.screen_name
end
正如文档所述,
:count (Integer) -每个页面返回的tweet数,最多a最多100个
所以,这与你想要达到的目标是相反的:count
越多,你要做的http请求就越少(因为每个请求都包含更多的tweet)。请注意,您不能将count
设置为超过100的数量,因此在有大量tweet的情况下限制请求数量的唯一方法是
search_results.take(requests_amount)
# => made requests_amount requests, returns requests_amount pages
# each of page should contain up to count tweets, with max of 100