如何使用Python中的Twitter API进行多次调用

问题描述 投票:1回答:2

我正在使用Twitter的Sandbox API对Twitter数据进行历史搜索。我在Python上使用TwitterAPI包。 Sandbox每月允许共有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']
python python-2.7 twitter
2个回答
0
投票

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

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

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


0
投票

正如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()
© www.soinside.com 2019 - 2024. All rights reserved.