Tôi đang cố truy xuất dữ liệu từ Twitter, sử dụng Tweepy cho tên người dùng được nhập tại dòng lệnh. Tôi muốn trích xuất khá nhiều dữ liệu về trạng thái và người dùng, do đó, hãy đưa ra các thông tin sau:Làm cách nào để tôi có thể truy xuất tất cả các Tweet và thuộc tính cho một người dùng cụ thể bằng cách sử dụng Python?
Lưu ý rằng tôi đang nhập tất cả các mô-đun cần thiết ok và có các khóa oauth + (không bao gồm ở đây) và tên tệp là chính xác, chỉ được thay đổi:
# 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)
Tôi muốn điều này cuối cùng được lặp qua tất cả các tweet của người dùng (tối đa giới hạn 3200). Điều đầu tiên mặc dù. Cho đến nay mặc dù tôi có hai vấn đề, tôi nhận được thông báo lỗi sau về 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
Đi qua tên người dùng như là một biến có vẻ là một vấn đề còn:
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
Tôi đã bị cô lập cả hai lỗi, nghĩa là chúng không hoạt động cùng nhau.
Tha thứ sự thiếu hiểu biết của tôi, tôi không quá nóng với các API Twitter nhưng tôi đang học khá nhanh. Tweepy tài liệu thực sự không hút và tôi đã thực hiện tải đọc vòng trên mạng, chỉ có thể không có vẻ để có được điều này cố định. Nếu tôi có thể có được sắp xếp này, tôi sẽ đăng một số tài liệu.
Tôi biết cách chuyển dữ liệu vào một db của MySQL một khi được trích xuất (nó sẽ làm điều đó, thay vì in ra màn hình) và thao tác nó để tôi có thể làm việc với nó, nó chỉ là nhận ra rằng tôi gặp vấn đề với. Có ai có bất kỳ ý tưởng hoặc là có một phương pháp tôi nên xem xét?
Bất kỳ trợ giúp nào thực sự đánh giá cao. Chúc mừng
CHỈNH SỬA:
Tiếp theo từ đề xuất của @Eric Olson sáng nay; Tôi đã làm như sau.
1) Đã tạo bộ thông tin đăng nhập Oauth hoàn toàn mới để kiểm tra. 2) mã được sao chép qua đến một kịch bản mới như sau:
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")
Lần đầu tiên tôi chạy kịch bản, nó hoạt động tốt và cập nhật tình trạng của tôi và trả về tên API như sau:
>>>
API NAME IS: Chris Howden
Sau đó, từ thời điểm đó tôi có được điều này:
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
Các chỉ có lý do tôi có thể nhìn thấy nó làm một cái gì đó như thế này là nó đang từ chối mã thông báo truy cập được tạo ra. Tôi không cần phải gia hạn mã thông báo truy cập phải không?
Ace, cảm ơn những nỗ lực của bạn. Tôi có trong khi chờ đợi mang theo để tìm một cách khác để có được tất cả những gì tôi muốn bằng cách sử dụng các mô-đun tweepy, nhưng điều này giúp để có được để hiểu json tốt hơn một chút. – chowden
Tôi sẽ đăng nội dung tôi đã tìm thấy khi hoàn tất. – chowden