0

我已经使用 Twitter 流 API 一段时间了,没有任何问题,但最近切换到使用 REST 并且有点困惑。

我正在尝试使用#vietnam 遍历推文的结果。阅读文档后,看来我应该使用 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 英里的半径,以确保我的结果不受位置限制。问题是在第二次迭代期间,结果只返回 1 条推文,即最后一个结果的 max_id。

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

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

4

2 回答 2

1

Twitter 的 REST API 只返回过去 7 天的结果,上周可能只有 341 条带有#vietnam 的推文。高级搜索的结果来自更远的地方。

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

于 2016-03-28T14:00:57.863 回答
0

您是否有任何理由分别执行两次搜索?

您在第一次迭代中找到最低(最旧)的推文 ID,并搜索比第二次迭代中的结果更早的结果(不存在)。也许我误解了?

于 2016-03-24T20:00:10.510 回答