Ruby on Rails - 迭代 Twitter Gem 搜索结果的问题
Posted
技术标签:
【中文标题】Ruby on Rails - 迭代 Twitter Gem 搜索结果的问题【英文标题】:Ruby on Rails - Issues with Iterating Through Twitter Gem Search Results 【发布时间】:2016-07-12 12:51:25 【问题描述】:我一直在使用 Twitter 流 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 英里的半径,以确保我的结果不受位置限制。问题是在第二次迭代期间,结果只返回 1 条推文,即最后一个结果的 max_id。
我知道还有更多 341 条带有#vietnam 英文的推文,已通过 Twitter 的高级搜索功能验证: https://twitter.com/search-advanced?lang=en
我的迭代技术有什么问题?
【问题讨论】:
【参考方案1】:Twitter 的 REST API 仅返回过去 7 天的结果,上周可能只有 341 条带有#vietnam 的推文。高级搜索有更早的结果。
您的方法似乎不错,请尝试使用在过去一周使用了数千次的简单或流行术语进行限制较少的搜索,看看您是否获得更多结果。
【讨论】:
我不知道它把你限制在 7 天前。无论如何,过去是否有进一步的研究?我们正在寻找历史观点。 @CHawk 恐怕不会,至少搜索不会。您可以获得可以追溯到更远的特定用户的推文,但仅此而已。 Twitter 在访问整个推文历史方面非常严格。有somesites 可以让你往后看,但它们的成本往往很高。您现在可以开始编译推文并建立未来的历史记录,但取决于您想要什么,这可能不太有用。 过去 7 天里只有 341 条带有#vietnam 的推文让我感到很奇怪,因为我可以观看直播,而在过去的几个小时里有 100 多条。但是,geocode: "14.05832400,108.27719900,100000mi"
仅导致返回带有地理编码的推文,而且上周似乎只有 341 条推文具有地理编码。不是我要找的结果,但你是对的! +50【参考方案2】:
您是否有任何理由分别执行两次搜索?
您在第一次迭代中找到了最低(最旧)的推文 ID,并搜索了比第二次迭代中更早的结果(不存在)。可能是我误会了?
【讨论】:
如果我可以一次获得所有推文,那将是完美的,但我的理解是推特限制了每次响应的结果。因此,我将不得不遍历结果。我希望第一次迭代得到 1-100 的结果,第二次得到 101-200 的结果......等等以上是关于Ruby on Rails - 迭代 Twitter Gem 搜索结果的问题的主要内容,如果未能解决你的问题,请参考以下文章
ruby on rails - 问题捆绑安装nokogiri 1.7.2 on ruby on rails 4.x.