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

Schreibe einen Kommentar