【问题标题】:Searching a twitter list for certain tags or words在 Twitter 列表中搜索某些标签或单词
【发布时间】:2014-12-22 01:26:15
【问题描述】:

我目前正在学习 ruby​​,并使用 twitter 作为平台来帮助我在 Sinatra 中构建我的第一个原型。我正在使用 Twitter gem,并设法获得了我的私人列表,并显示了与该列表中的用户相关的所有推文。

但是我现在想在列表中搜索一组特定的关键字,如果找到则显示推文。

有谁知道 Twitter gem 中是否有任何方法可以做到这一点?或者我将如何以有效的方式在 Rails 中执行此操作。

我能弄清楚的唯一方法是遍历返回的每条推文,获取与该推文相关的文本并搜索关键字,如果找到则显示该推文。这对我来说是愚蠢的低效,这不会耗尽不必要的 API 请求吗?

如果这对任何人有任何帮助,这就是我目前所拥有的。

require 'sinatra'
require 'rubygems'
require 'twitter'

client = Twitter::REST::Client.new do |config|
  config.consumer_key       =  'xxxx'
  config.consumer_secret    =  'xxx'
  config.access_token        = 'xx'
  config.access_token_secret = 'xx'
end


get '/' do
  @tweet = client.list_timeline(1231123123123,{:include_rts => 0})
  erb :index
end

在此先感谢

马特

【问题讨论】:

    标签: ruby twitter sinatra


    【解决方案1】:

    您对此是正确的:遍历返回的每条推文,获取与该推文相关的文本并搜索关键字,如果找到则显示该推文。

    你写道:“这对我来说是愚蠢的低效”。你是对的。这是低效的,因为您必须检索所有推文,而不仅仅是包含您想要的关键字的推文。

    Twitter gem 不会做你想做的事,因为 Twitter 搜索有点难以预测。这是因为 Twitter 搜索正在优化相关性,而不是彻底性。

    我认为,您正在寻找的是 Twitter “Streams”。当您请求 Twitter 流时,您会从用户(或站点,或全球)获得所有推文。这设置起来更复杂。这为您提供一切,并实时提供给您。

    https://dev.twitter.com/streaming/overview

    然后你在 Rails 中搜索推文。

    • 如果你想要一个简单的搜索,你可能想看看使用 Ruby 的select 方法和Regexp 类。

    • 如果您想要强大的搜索功能,您可能需要查看各种搜索宝石和搜索引擎,例如 sunspot_solr 和 Lucene。

    • 如果您正在构建具有更高级扩展和搜索需求的真实业务应用程序,您可能需要阅读有关 Twitter Firehose 合作伙伴和诸如 discovertext 之类的文本引擎的信息。这些合作伙伴和引擎提供实时搜索 API、缓存和更多功能。

    【讨论】:

      【解决方案2】:

      考虑使用example here所示的搜索方式

      【讨论】:

      • 据我所知,这不允许在子集中进行搜索,以及文档Please note that Twitter’s search service and, by extension, the Search API is not meant to be an exhaustive source of Tweets. Not all Tweets will be indexed or made available via the search interface. 中所述
      • 不要仅使用链接指向场外示例。 链接断开时,您的答案将毫无用处。相反,请在您的答案中复制该链接的重要部分,并解释为什么它对 OP 有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2021-10-14
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多