【问题标题】:How can I use tweepy without a filter如何在没有过滤器的情况下使用 tweepy
【发布时间】:2015-02-16 06:39:40
【问题描述】:

我是 tweepy 库的新手。如果我使用如下所示的过滤器,则可以捕获 Twitter 流,在文本​​字段中查找包含单词 snow 的推文。

import tweepy
ckey = ''
csecret = ''
atoken = ''
asecret = ''
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["snow"])

但是,我不知道如何在不进行任何过滤的情况下捕获所有推文。如果我离开上面代码的最后一行,程序会运行,但我没有收到任何推文。如果我将 track 参数更改为 track=[]track=[""],我会从 Twitter API 收到错误代码 406。

我正在使用 Python 3.4.2。

【问题讨论】:

  • 感谢 wnnmaw 的格式化帮助!

标签: python python-3.x twitter tweepy


【解决方案1】:

您可以使用twitterStream.sample() 作为最后一行。它将为您获取所有推文。

【讨论】:

  • 它不会获取所有推文。 “返回所有公共状态的小随机样本。默认访问级别返回的推文是相同的,因此如果两个不同的客户端连接到此端点,他们将看到相同的推文。” link
  • 新的 api 声明如下:“采样流端点允许开发人员在所有新公共推文发生时流式传输大约 1%。每个会话只能连接一个客户端,并且可以断开连接和每 15 分钟窗口重新连接不超过 50 次。” link
【解决方案2】:

不要按位置搜索。它将限制那些没有启用地理定位的推文。我建议使用 stream.sample() 代替。 IT 没有任何必要的参数。有关详细信息,请参阅 tweepy 文档。

【讨论】:

    【解决方案3】:

    流式 API 只能与至少一个谓词参数一起使用,如 twitter documentation 中所指定。
    幸运的是,还有一个 locations 参数,您可以传递值 [-180,-90,180,90] 以获取来自地球上每个点的推文。

    所以,在上面的 sn-p 中,最后一行应该是:
    twitterStream.filter(locations=[-180,-90,180,90])

    您将获得的唯一过滤条件是用户不得关闭地理标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      相关资源
      最近更新 更多