Wie kann ich abrufen alle Tweets und Attribute für einen bestimmten Benutzer mit Python?
Ich bin versucht, abrufen von Daten aus Twitter, mit Tweepy für ein Benutzername eingegeben auf der Kommandozeile. Ich bin zu wollen-Extrakt einiges an Daten über den status und Benutzer,so haben Sie kommen mit dem folgenden:
Beachten Sie, dass ich bin, importieren Sie alle erforderlichen Module ok und haben oauth + - Tasten (nur nicht im Lieferumfang enthalten, es hier) und Dateiname korrekt ist, nur geändert hat:
# define user to get tweets for. accepts input from user
user = tweepy.api.get_user(input("Please enter the twitter username: "))
# Display basic details for twitter user name
print (" ")
print ("Basic information for", user.name)
print ("Screen Name:", user.screen_name)
print ("Name: ", user.name)
print ("Twitter Unique ID: ", user.id)
print ("Account created at: ", user.created_at)
timeline = api.user_timeline(screen_name=user, include_rts=True, count=100)
for tweet in timeline:
print ("ID:", tweet.id)
print ("User ID:", tweet.user.id)
print ("Text:", tweet.text)
print ("Created:", tweet.created_at)
print ("Geo:", tweet.geo)
print ("Contributors:", tweet.contributors)
print ("Coordinates:", tweet.coordinates)
print ("Favorited:", tweet.favorited)
print ("In reply to screen name:", tweet.in_reply_to_screen_name)
print ("In reply to status ID:", tweet.in_reply_to_status_id)
print ("In reply to status ID str:", tweet.in_reply_to_status_id_str)
print ("In reply to user ID:", tweet.in_reply_to_user_id)
print ("In reply to user ID str:", tweet.in_reply_to_user_id_str)
print ("Place:", tweet.place)
print ("Retweeted:", tweet.retweeted)
print ("Retweet count:", tweet.retweet_count)
print ("Source:", tweet.source)
print ("Truncated:", tweet.truncated)
Möchte ich dies schließlich Durchlaufen alle user die tweets (bis zu 3200 limit). First things First obwohl. So weit allerdings habe ich zwei Probleme, ich bekomme folgende Fehlermeldung in Bezug auf retweets:
Please enter the twitter username: barackobamaTraceback (most recent call last):
File " usertimeline.py", line 64, in <module>
timeline = api.user_timeline(screen_name=user, count=100, page=1)
File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 401
Traceback (most recent call last):
File "usertimeline.py", line 42, in <module>
user = tweepy.api.get_user(input("Please enter the twitter username: "))
File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 404
Bestehen der username als variable scheint ein problem zu sein auch:
Traceback (most recent call last):
File " usertimleline.py", line 64, in <module>
timeline = api.user_timeline(screen_name=user, count=100, page=1)
File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 401
Habe ich isoliert, die beide diesen Fehler, d.h. Sie arbeiten nicht zusammen.
Verzeihen Sie meine Unwissenheit, ich bin nicht zu heiß bei Twitter-APIs, aber Lerne ziemlich schnell. Tweepy Dokumentation wirklich saugen und das habe ich getan Lasten des Lesens Runde im Netz, nur kann nicht scheinen, um diese behoben. Wenn ich das sortiert, ich werde Entsendung einige Dokumentation.
Weiß ich, wie man übertragen Sie die Daten in eine MySQL-db einmal extrahiert (es wird, dass, anstatt Druck auf Bildschirm) und manipulieren es so, dass ich Sachen tun können, ist es einfach es hin bekommen, ich habe die Probleme mit. Hat jemand irgendwelche Ideen, oder gibt es eine andere Methode, die ich sollte in Erwägung ziehen?
Jede Hilfe wirklich dankbar. Cheers
EDIT:
Folgenden auf die von @Eric Olson ' s Vorschlag heute morgen; ich habe die folgenden.
1) Erstellt eine völlig neue Reihe von Oauth-Anmeldeinformationen zu testen.
2) Kopierten code in einen neuen Skript wie folgt:
Oauth
consumer_key = "(removed)"
consumer_secret = "(removed)"
access_key="88394805-(removed)"
access_secret="(removed)"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api=tweepy.API(auth)
# confirm account being used for OAuth
print ("API NAME IS: ", api.me().name)
api.update_status("Using Tweepy from the command line")
Das erste mal, dass ich das Skript ausführen, es funktioniert einwandfrei und updates, mein status und gibt den API-Namen wie folgt:
>>>
API NAME IS: Chris Howden
Dann von diesem Punkt aus auf bekomme ich diese:
Traceback (most recent call last):
File "C:/Users/Chris/Dropbox/Uni_2012-3/6CC995 - Independent Studies/Scripts/get Api name and update status.py", line 19, in <module>
api.update_status("Using Tweepy frm the command line")
File "C:\Python32\lib\site-packages\tweepy-1.4-py3.2.egg\tweepy\binder.py", line 153, in _call
raise TweepError(error_msg)
tweepy.error.TweepError: Twitter error response: status code = 403
Der einzige Grund, ich kann sehen, es für etwas wie das zu tun ist, es wird die Ablehnung des erzeugten access token. Sollte ich nicht brauchen, um die Erneuerung des Zugangs-Tokens sollte ich?
InformationsquelleAutor chowden | 2013-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie offen für eine neue Bibliothek, Sie geben könnte rauth ein Schuss. Es gibt bereits ein Twitter-Beispiel aber wenn du bist Gefühl faul und wollen einfach nur ein funktionierendes Beispiel, hier ist, wie würde ich ändern, die demo-Skript:
Können Sie dies ausführen, aber seien Sie sicher, dass die Anmeldeinformationen aktualisieren! Diese sollen für demo-Zwecke nur.
Vollständige Offenlegung, ich bin der maintainer von rauth.
Ich werde posten, was ich gefunden habe, wenn alles abgeschlossen ist.
InformationsquelleAutor maxcountryman
Sind Sie immer auf der 401-Antwort, was bedeutet "Unauthorized." (siehe HTTP-status-codes)
Dein code sieht gut aus. Mit
api.user_timeline(screen_name="some_screen_name")
funktioniert für mich in dem alten Beispiel, das ich rumliegen habe.Ich vermute, Sie müssen entweder zur Autorisierung der app, oder es gibt ein problem mit Ihrem OAuth einrichten.
Vielleicht habt Ihr es schon, aber hier ist eine kurze code-Beispiel, das ich gestartet von: https://github.com/nloadholtes/tweepy/blob/nloadholtes-examples/examples/oauth.py
InformationsquelleAutor Eric Olson