Как я могу получить все твиты и атрибуты для данного пользователя, используя Python?
Я пытаюсь получить данные из Twitter, используя Tweepy для имени пользователя, введенного в командной строке. Я'Я хочу извлечь немало данных о статусе и пользователе, поэтому придумали следующее:
Обратите внимание, что я импортирую все необходимые модули в порядке, и у меня есть ключи oauth + (просто здесь их нет), а имя файла правильное, только что было изменено:
# 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)
Я хотел бы, чтобы это в конечном итоге перебрать всех пользователей "s твиты (до 3200 пределов). Хотя обо всем по порядку. Пока у меня есть две проблемы, я получаю следующее сообщение об ошибке в отношении ретвитов:
Please enter the twitter username: barackobamaTraceback (most recent call last):
File " usertimeline.py", line 64, in
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
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
Передача имени пользователя в качестве переменной также кажется проблемой:
Traceback (most recent call last):
File " usertimleline.py", line 64, in
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
мы выделили обе эти ошибки, т.е.работать вместе
Простите за мое невежество, я не слишком хорош в API Twitter, но учусь довольно быстро. Tweepy документация действительно сосет, и ямы сделали много чтения в сети, просто могуКажется, это исправлено. Если я могу это отсортировать, яЯ буду публиковать некоторые документы.
Я знаю, как перенести данные в базу данных MySQL после извлечения (она будет делать это, а не печатать на экран) и манипулировать ею, чтобы я мог с ней что-то делать, просто получаю, что у меня проблемы с , У кого-нибудь есть идеи или есть другой метод, который я должен рассмотреть?
Любая помощь действительно ценится. ура
РЕДАКТИРОВАТЬ:
Исходя из @Eric Olson 'предложение сегодня утром; Я сделал следующее.
1) Создан совершенно новый набор учетных данных Oauth для тестирования. 2) Скопировал код в новый скрипт следующим образом:
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")
При первом запуске скрипта он работает нормально, обновляет мой статус и возвращает имя API следующим образом:
>>>
API NAME IS: Chris Howden
Затем с этого момента я получаю это:
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
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
Единственная причина, по которой я могу это сделать, заключается в том, что он отклоняет сгенерированный токен доступа. Я не долженМне нужно обновить токен доступа?