web-dev-qa-db-ja.com

Twitterユーザーのユーザータイムライン全体を取得する

1人のTwitterユーザーからすべてのユーザーのツイートを取得したいのですが、これまでのところ、これは私が思いついたものです。

import Twitter
import json
import sys
import tweepy 
from tweepy.auth import OAuthHandler


CONSUMER_KEY = ''
CONSUMER_SECRET= ''
OAUTH_TOKEN=''
OAUTH_TOKEN_SECRET = ''

auth = Twitter.OAuth(OAUTH_TOKEN,OAUTH_TOKEN_SECRET,CONSUMER_KEY,CONSUMER_SECRET)


Twitter_api =Twitter.Twitter(auth=auth)

print Twitter_api

statuses = Twitter_api.statuses.user_timeline(screen_name='@realDonaldTrump')
print [status['text'] for status in statuses]

不要なインポートは無視してください。 1つの問題は、これがユーザーの最近のツイート(または最初の20ツイート)しか取得しないことです。ユーザー全員のツイートを取得することは可能ですか?私の知る限り、GEt_user_timeline(?)は3200の制限のみを許可します。少なくとも3200のツイートを取得する方法はありますか?何が悪いのですか?

11
Vin23

いくつかの余分なインポートを含め、コードにはいくつかの問題があります。特に、import Twitterimport tweepyは必要ありません-tweepyは必要なすべてを処理できます。あなたが遭遇している特定の問題は、ページネーションの1つです。これはtweepyCursor オブジェクトを使用して次のように処理できます。

import tweepy

# Consumer keys and access tokens, used for OAuth
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
api = tweepy.API(auth)

for status in tweepy.Cursor(api.user_timeline, screen_name='@realDonaldTrump', Tweet_mode="extended").items():
    print(status.full_text)
18
asongtoruin