python - 没有track参数是否可以使用Tweepy的过滤功能?
问题描述
我正在使用 Tweepy 根据一些参数直播推文。
以下示例可以正常工作,因为它返回包含单词“python”的所有实时推文:
stream.filter(track=['python'])
但是,我想在使用其他过滤流的方式(例如语言)时获取所有实时推文。例如,以下示例应该允许我获取所有希腊推文:
stream.filter(track=['*'], languages=['el'])
不幸的是,这会返回所有包含该*
符号的希腊推文。
如果我输入:
stream.filter(languages=['el'])
我得到一个406
错误。
所以,我的问题是:
我可以删除track
参数以使用 Tweepy 获取所有实时推文吗?有没有其他方法可以根据其他参数获取所有推文?
编辑:我知道这stream.sample()
是一个选择。问题是,如果我输入:
stream.sample(languages=['en'])
我收到很多推文,但如果我输入:
stream.sample(languages=['el'])
流很慢。即,我可能每分钟收到一条推文。我想这与推文的采样方式以及样本的大小有关。所以,我在问是否有更好的方法来实现我想要的,可能不使用stream.sample()
.
解决方案
stream.filter(follow=follow, track=track, locations=location)
您必须提供follow
(推特 ID 列表)、track
(关键字列表)或位置框location
(来自某个地区的推文)。
您可以提供多个它将充当逻辑OR
.
合乎逻辑的步骤是指定一个覆盖整个地球的位置框。可悲的是,这只流式传输了暴露其地理位置信息的用户的推文。
所以这意味着你真正能做的就是这样的事情:
stream.filter(follow=follow, track=["a", "b", "c", ...], locations=[0, -90, 360, 90], languages=['el'])
该track
参数接受最多 400 个关键字的列表。您可以搜索您的语言中最常用的单词列表并在那里提供。
请记住,由于将要到达的推文数量庞大,您不会收到所有推文。这将是所有推文的 1%,您不能再低了。您必须付费才能访问高级 API。
推荐阅读
- node.js - Passportjs Google 身份验证第一次失败
- flutter - Flutter 如何使用 in_app_purchase 在 Android 上获取过去的购买记录:^1.0.8
- swiftui - 文本字段中的 SwiftUI 颜色输入
- c# - 我已经被困在这段代码上几个小时了。我是 C# 新手,仍在学习过程中,所以如果你能解决我将不胜感激
- ansible - Ansible 2.9:如果条件不满足,如何继续其余任务
- slack - 从 Slack 中检索直接消息
- android - Android Studio Google Firebase 身份验证
- python - 为什么当我将数据框转换为元组列表时会有一个点?
- javascript - 我应该如何实现这个动态端点 HTTP GET 请求?
- mysql - EF - 从表中获取数据给出空值