【问题标题】:twitter data fetching limitationstwitter 数据获取限制
【发布时间】:2018-04-02 07:45:01
【问题描述】:
使用 R 获取 twitter 数据有什么限制吗?
我正在尝试获取 2000 条推文,但 twitter API 仅返回 261
警告消息:1:在 if (nchar(searchString) > 1000) { :
条件的长度 > 1,并且只使用第一个元素 2:在
doRppAPICall("搜索/推文", n, params = params, retryOnRateLimit =
retryOnRateLimit, : 请求了 2000 条推文,但 API 只能
返回 261
【问题讨论】:
标签:
r
twitter
sentiment-analysis
twitter-rest-api
【解决方案1】:
为避免 Twitter 限制,请使用:
library(streamR)
filterStream 打开与 Twitter 的 Streaming API 的连接,该 API 将返回匹配一个或多个过滤器谓词的公共状态。推文可以按关键字、用户、语言和位置过滤。输出可以保存为内存中的对象或写入文本文件。
filterStream(file.name = NULL, track = NULL,
follow = NULL, locations = NULL, language = NULL, timeout = 0, tweets = NULL, oauth = NULL, verbose = TRUE)
注意:此功能实时获取推文并避免限制。
【解决方案2】:
您肯定不会收到现有的那么多推文。 Twitter 限制您可以返回多远(以及因此有多少推文可用)的方式是使用传递给 Twitter API 的 GET 搜索/推文调用的最小 since_id 参数。在 Tweepy 中,API.search 函数与 Twitter API 交互。 Twitter 的 GET 搜索/推文文档有很多很好的信息:
可以通过以下方式访问的推文数量有限制
API。如果自 since_id 以来已出现推文限制,则
since_id 将被强制使用最旧的可用 ID。
实际上,Tweepy 的 API.search 应该不会花费很长时间来获取所有可用的推文。请注意,并非所有推文都可以通过 Twitter API 获得,但我的搜索时间从未超过 10 分钟。