python - 如何在 Python 中使用 Twitter API 进行多次调用
问题描述
我正在使用 Twitter 的 Sandbox API 对 Twitter 数据进行历史搜索。我在 Python 上使用 TwitterAPI 包。沙盒每月允许总共 50 个 API 请求。
我在下面有这段代码,它可以很好地收集数据,但只进行了一个请求,这意味着我只有 100 条推文。我想知道我可以插入什么代码,这样我就可以一次发出多个请求。我希望现在使用此代码使用我本月的所有 50 个请求。
当前代码:
from TwitterAPI import TwitterAPI
import csv
SEARCH_TERM = 'my-search-term-here'
PRODUCT = 'fullarchive'
LABEL = 'here-goes-my-dev-env'
api = TwitterAPI("consumer_key",
"consumer_secret",
"access_token_key",
"access_token_secret")
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL),
{'query':SEARCH_TERM,
'fromDate':'201811151334',
'toDate':'201811161500'
}
)
csvFile = open('filename.csv', 'a')
csvWriter = csv.writer(csvFile)
for item in r:
csvWriter.writerow([item['created_at'],item['user']. ['screen_name'], item['text']
解决方案
我不确定我是否真的理解你的问题。您正在发出一个可能匹配数千条推文的请求,现在您访问前 100 条,但您现在想要下 100 条,对吗?如果是这样,您应该知道 Twitter API 是基于分页系统的。这意味着如果您的请求匹配 300 条推文,您可以访问 100 条推文的 3 页。为此,请依赖 TwitterAPI 的分页 API:
http://geduldig.github.io/TwitterAPI/paging.html https://geduldig.github.io/TwitterAPI/twitterpager.html
请注意,还有另一个库'tweepy'可以做同样的事情。我觉得它更方便,但这是个人的。
推荐阅读
- react-native - axios处理网络requset时如何使用redux-observerable
- oracle - Oracle express 18c 是否默认有 hr 帐户和方案?
- c++ - 在 Rcpp 和 C++ 之间转换向量(使用 Rcpp::as 或 Rcpp::wrap)会创建一个新的向量并复制元素吗?
- c++ - 为什么我收到语法错误:缺少';' 前 '*'
- c - 如何在 C/C++ 中的 SWITCH-CASE 结构中使用 do-while 循环从头重新启动程序?
- ms-access - 删除重复金额
- javascript - 如何使用 Cypress 断言 HTML 元素的高度或宽度大于指定量?
- wordpress - 接收建立数据库连接的错误
- mysql - 表格有两列,一列是日期,一列是小时,我想比较'2019-10-23 00'和'2019-10-26 12'之间的日期,怎么办?
- swift - 在 Swift 中登录网站,然后下载文件