Ich versuche, einige Twitter-Daten für den Bereich Chicago speziell mit Blick auf Kriminalität Tweets herunterladen. Ich brauche diese auch mit Koordinaten georeferenziert werden. Ich möchte einen guten Betrag für Analysezwecke erhalten, jedoch ist die REST-API begrenzt und beschränkt sich daher auf eine relativ geringe Anzahl. Ich habe versucht, eine Workaround-Lösung zu erstellen, basierend auf einer ähnlichen Frage Avoid twitter api limitation with Tweepy aber bisher habe ich nicht viel Glück. Könnte mir jemand dabei helfen? Ich bin ein Neuling für all diese Dinge, also würde jede Hilfe wirklich geschätzt werden. Idealerweise möchte ich das auch in einem Pandas-Dataframe. Ich habe das folgende Tutorial als Grundlage für meine Programmierung verwendet. Dies kann unter: http://www.karambelkar.info/2015/01/how-to-use-twitters-search-rest-api-most-effectively./ ich den Code kopiert haben habe ich unten:Tweepy api Grenze Workaround
import tweepy
auth = tweepy.AppAuthHandler('', '')
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
if (not api):
print ("Can't Authenticate")
sys.exit(-1)
import sys
import jsonpickle
import os
searchQuery = 'shooting OR stabbing OR violence OR assualt OR attack OR homicide OR punched OR mugging OR murder'
geocode= "41.8781,-87.6298,15km"
maxTweets = 1000000
tweetsPerQry = 100
fName = 'tweets.txt'
sinceId = None
max_id = 1L
tweetCount = 0
print ("Downloading max {0} tweets".format(maxTweets))
with open (fName, 'w') as f:
while tweetCount < maxTweets:
try:
if (max_id <= 0):
if(not sinceId):
new_tweets = api.search(q=searchQuery, geocode=geocode, count=tweetsPerQry)
else:
new_tweets = api.search(q=searchQuery, geocode=geocode, count=tweetsPerQry, since_id=sinceID)
else:
if (not sinceId):
new_tweets = api.search(q=searchQuery, geocode=geocode, count=tweetsPerQry, max_id=str(max_id-1))
else:
new_tweets = api.search(q=searchQuery, geocode=geocode, count=tweetsPerQry, max_id=str(max_id-1), since_id=sinceId)
if not new_tweets:
print ("No more tweets found")
break
for tweet in new_tweets:
f.write(jsonpickle.encode(tweet._json, unpicklable=False)+'\n')
tweetCount += len(new_tweets)
print("Downloaded {0} tweets".format(tweetCount))
max_id = new_tweets[-1].id
except tweepy.TweepError as e:
print("some error : " + str(e))
break
print ("Downloaded {0} tweets, Saved to {1}".format(tweetCount, fName))
Was genau bedeutet "nicht viel Glück" * in diesem Fall? Fehler? Unerwartetes Verhalten? Bitte geben Sie ein [mcve] (und versuchen Sie nicht, Ihre API-Token in Zukunft zu teilen). – jonrsharpe
Danke für die schnelle Antwort! Entschuldigung, das war ein Versehen meinerseits. Danke, dass du das beseitigt hast. In Bezug auf nicht viel Glück, es scheint nur zu hängen, als ob es verarbeitet, aber wenn ich meine Textdatei überprüfen, gibt es nichts darin, während ich erwarten würde, dass dies zumindest einige Daten darin nach dem Ausführen für eine Weile enthalten . –
Ich bekomme keine Fehlermeldungen, nur um zu klären –