Ruby Rails - 遍历 Twitter Gem 搜索结果的问题

Ruby on Rails - Issues with Iterating Through Twitter Gem Search Results

我一直在使用 Twitter Streaming API 一段时间,没有遇到任何问题,但最近切换到使用 REST 并且有点困惑。

我正在尝试使用#vietnam 遍历推文的结果。在 reading the documentation 之后,看来我应该使用 max_id.

max_id = 70978401017678643100000000000000 #very big number to start out with
i = 1
2.times do
  puts '----------SEARCHING WITH MAX_ID: ' + max_id.to_s
  $twitter.search('#vietnam', result_type: "recent", lang: 'en', geocode: "14.05832400,108.27719900,100000mi", count: 100, max_id: max_id).each do |tweet|
    puts "#{i} - tweet.id: " + tweet.id.to_s
    i += 1
    max_id = tweet.id if tweet.id < max_id
  end
end

这是终端的结果:

----------SEARCHING WITH MAX_ID: 70978401017678643100000000000000
1 - tweet.id: 713034427027361794
2 - tweet.id: 713030624164982785
3 - tweet.id: 713027195015413760
4 - tweet.id: 713022173246582784
5 - tweet.id: 713021690989641728
6 - tweet.id: 713013561396764672
7 - tweet.id: 713010847166177280
8 - tweet.id: 712997640930197505
...
341 - tweet.id: 709784010176786432
----------SEARCHING WITH MAX_ID: 709784010176786432
342 - tweet.id: 709784010176786432

搜索查询中的地理编码以越南中心为中心半径为 100,000 英里,以确保我的结果不受位置限制。问题是,在第二次迭代期间,结果只有 return 1 条推文,来自上次结果的 max_id。

我知道还有 341 条英文推文带有#vietnam,已通过 Twitter 的高级搜索功能验证: https://twitter.com/search-advanced?lang=en

我的迭代技术有什么问题?

是否有任何原因让您分别执行两次搜索?

您正在第一次迭代中查找最低(最旧)的推文 ID,并在第二次迭代中搜索比该 ID 更早的结果(不存在)。可能是我理解错了?

Twitter 的 REST API 只有 returns 过去 7 天的结果,上周可能只有 341 条带有#vietnam 的推文。高级搜索有更早的结果。

您的方法看起来不错,请尝试使用过去一周内被使用数千次的简单或流行术语进行限制性较低的搜索,看看是否能获得更多结果。