Мне интересно, как я могу автоматизировать свою программу для получения твитов с максимальной скоростью 180 запросов за 15 минут, что эквивалентно максимальному количеству 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