2017-06-16 13 views
0

ツイートIDのリストを含むファイルを取得したいと思います。ツイートが1000または2000が、私はデータのサンプルを取るにしたくないと言うより取得する方法はありますファイルに複数100000件のツイートが含まれており、TwitterのAPIのみ100tweetのIDを使用してtweet IDを使用してツイートのリストを取得する

api = tweepy.API(auth) 
good_tweet_ids = [i for i in por.TweetID[0:100]] 
tweets = api.statuses_lookup(good_tweet_ids) 
for tweet in tweets: 
    print(tweet.text) 

を取得することができますし、その結果をファイルに保存し、毎回ツイートIDのインデックスを変更してください。そうする方法があります。

答えて

3

はい - ツイートでは一度に100個のツイートのみを検索できますが、その直後に100個のツイートを検索できます。それでは唯一懸念されるのは、レート制限です.15分ごとのウィンドウでAPIに呼び出すことのできる回数によって制限されます。幸いにも、tweepyは、wait_on_rate_limit=Trueを使用してAPIを作成すると、これを正常に処理できます。私たちがする必要があるのは、ツイートIDの完全なリストを100個以下のバッチに加工することです(130個あるとします - 2番目のバッチは最後の30個だけにしてください)。以下を試してください:

import tweepy 


def lookup_tweets(tweet_IDs, api): 
    full_tweets = [] 
    tweet_count = len(tweet_IDs) 
    try: 
     for i in range((tweet_count/100) + 1): 
      # Catch the last group if it is less than 100 tweets 
      end_loc = min((i + 1) * 100, tweet_count) 
      full_tweets.extend(
       api.statuses_lookup(id=tweet_IDs[i * 100:end_loc]) 
      ) 
     return full_tweets 
    except tweepy.TweepError: 
     print 'Something went wrong, quitting...' 

consumer_key = 'XXX' 
consumer_secret = 'XXX' 
access_token = 'XXX' 
access_token_secret = 'XXX' 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 

api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True) 

# do whatever it is to get por.TweetID - the list of all IDs to look up 

results = lookup_tweets(por.TweetID, api) 

for tweet in results: 
    if tweet: 
     print tweet.text 
+0

ありがとうございました。それはケーキです:) –

+0

心配しないでください。問題が解決した場合は、その左側のチェックを使用して答えとしてマークすることができます – asongtoruin

関連する問題