【发布时间】:2015-04-21 04:32:34
【问题描述】:
我想知道如何自动化我的程序以每 15 分钟 180 个请求的最大速率获取推文,这相当于每个请求的最大计数为 100,总计 18,000 条推文。我正在为学校的独立案例研究创建这个程序。
我希望我的程序避免受到速率限制并最终被终止。所以,我想要它做的是不断地使用每 15 分钟的最大请求数,并且能够让它运行 24 小时而无需用户交互来检索所有可能的推文进行分析。
这是我的代码。它获取查询推文并将其放入文本文件中,但最终会受到速率限制。非常感谢您的帮助
import logging
import time
import csv
import twython
import json
app_key = ""
app_secret = ""
oauth_token = ""
oauth_token_secret = ""
twitter = twython.Twython(app_key, app_secret, oauth_token, oauth_token_secret)
tweets = []
MAX_ATTEMPTS = 1000000
# Max Number of tweets per 15 minutes
COUNT_OF_TWEETS_TO_BE_FETCHED = 18000
for i in range(0,MAX_ATTEMPTS):
if(COUNT_OF_TWEETS_TO_BE_FETCHED < len(tweets)):
break
if(0 == i):
results = twitter.search(q="$AAPL",count='100',lang='en',)
else:
results = twitter.search(q="$AAPL",include_entities='true',max_id=next_max_id)
for result in results['statuses']:
print result
with open('tweets.txt', 'a') as outfile:
json.dump(result, outfile, sort_keys = True, indent = 4)
try:
next_results_url_params = results['search_metadata']['next_results']
next_max_id = next_results_url_params.split('max_id=')[1].split('&')[0]
except:
break
【问题讨论】:
标签: python api twitter tweets twython