首页 > 解决方案 > 如何在 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']

标签: pythonpython-2.7twitter

解决方案


我不确定我是否真的理解你的问题。您正在发出一个可能匹配数千条推文的请求,现在您访问前 100 条,但您现在想要下 100 条,对吗?如果是这样,您应该知道 Twitter API 是基于分页系统的。这意味着如果您的请求匹配 300 条推文,您可以访问 100 条推文的 3 页。为此,请依赖 TwitterAPI 的分页 API:

http://geduldig.github.io/TwitterAPI/paging.html https://geduldig.github.io/TwitterAPI/twitterpager.html

请注意,还有另一个库'tweepy'可以做同样的事情。我觉得它更方便,但这是个人的。


推荐阅读