Hier ist ein minimales Arbeitsbeispiel (sobald Sie die falschen Schlüssel durch echte ersetzen).
import tweepy
from math import ceil
def get_authorization():
info = {"consumer_key": "A7055154EEFAKE31BD4E4F3B01F679",
"consumer_secret": "C8578274816FAEBEB3B5054447B6046F34B41F52",
"access_token": "15225728-3TtzidHIj6HCLBsaKX7fNpuEUGWHHmQJGeF",
"access_secret": "61E3D5BD2E1341FFD235DF58B9E2FC2C22BADAD0"}
auth = tweepy.OAuthHandler(info['consumer_key'], info['consumer_secret'])
auth.set_access_token(info['access_token'], info['access_secret'])
return auth
def get_tweets(query, n):
_max_queries = 100 # arbitrarily chosen value
api = tweepy.API(get_authorization())
tweets = tweet_batch = api.search(q=query, count=n)
ct = 1
while len(tweets) < n and ct < _max_queries:
print(len(tweets))
tweet_batch = api.search(q=query,
count=n - len(tweets),
max_id=tweet_batch.max_id)
tweets.extend(tweet_batch)
ct += 1
return tweets
Anmerkung: Ich habe versucht eine for-Schleife, aber die twitter api manchmal gibt weniger als 100 Ergebnisse (trotz für 100 gefragt zu werden, und 100 verfügbar ist). Ich bin mir nicht sicher, warum das so ist, aber das ist der Grund, warum ich keinen Haken gesetzt habe, um die Schleife zu unterbrechen, wenn tweet_batch leer ist - Sie könnten eine solche Überprüfung selbst hinzufügen, wie es eine query rate limit gibt.
Noch ein Hinweis: Sie können das vermeiden, dass die Ratenbegrenzung Schlagen von wait_on_rate_limit=True
wie Aufrufen so
api = tweepy.API(get_authorization(), wait_on_rate_limit=True)
Es sieht aus wie ein Zähl-Parameter, die die Anzahl der Ergebnisse kontrolliert, aber ist es eine Möglichkeit zu zeigen, nur alle die Ergebnisse? – user1893354