如何在Python中使用Twitter API进行多个调用

如何在Python中使用Twitter API进行多个调用,python,python-2.7,twitter,Python,Python 2.7,Twitter,我正在使用Twitter的沙盒API对Twitter数据进行历史搜索。我正在Python上使用TwitterAPI包。Sandbox每月允许总共50个API请求 我有下面的代码,它正在收集数据,但只执行了一个请求,这意味着我只有100条tweet。我想知道我可以插入什么代码,这样我就可以一次发出多个请求。我希望现在使用这个代码使用我这个月的50个请求 当前代码: from TwitterAPI import TwitterAPI import csv SEARCH_TERM = 'my-sea

我正在使用Twitter的沙盒API对Twitter数据进行历史搜索。我正在Python上使用TwitterAPI包。Sandbox每月允许总共50个API请求

我有下面的代码,它正在收集数据,但只执行了一个请求,这意味着我只有100条tweet。我想知道我可以插入什么代码,这样我就可以一次发出多个请求。我希望现在使用这个代码使用我这个月的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']

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


请注意,还有另一个库可以做完全相同的事情。我觉得这更方便,但这是我个人的问题。

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


请注意,还有另一个库可以做完全相同的事情。我发现它更方便,但这是个人的。

正如machinus所说,您可以使用TwitterPager实用程序。在您的代码中,我认为您只需要更改这一行代码:

r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})
为此:

pager = TwitterPager(api, 'tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})
r = pager.get_iterator()

正如machinus所说,您可以使用TwitterPager实用程序。在您的代码中,我认为您只需要更改这一行代码:

r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})
为此:

pager = TwitterPager(api, 'tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})
r = pager.get_iterator()