2017-08-12 9 views
3

私はPythonで新しいです。私を助けてください。 問題: それぞれのユーザーのすべてのつぶやきを取得しました。 私は、それぞれのuser.howの最新のつぶやきのうち、n個のつぶやきを取得できないようにしますか?以下 は私のコードです:どのユーザーのtwitterからも 'n'つぶやきを得る方法

def get_all_tweets(screen_name): 


    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_key, access_secret) 
    api = tweepy.API(auth) 

    alltweets = [] 
    # make initial request for most recent tweets (200 is the maximum allowed count) 
    new_tweets = api.user_timeline(screen_name=screen_name,count=200) 

    alltweets.extend(new_tweets) 
    print len(alltweets) 

    oldest = alltweets[-1].id - 1 

    while len(new_tweets) > 0: 
     print "getting tweets before %s" % (oldest) 
     new_tweets = api.user_timeline(screen_name=screen_name, count=200, max_id=oldest) 

     # save most recent tweets 
     alltweets.extend(new_tweets) 


     # update the id of the oldest tweet less one 
     oldest = alltweets[-1].id - 1 

     print "...%s tweets downloaded so far" % (len(alltweets)) 



    f = open('testfile.txt', 'w+') 
    for tweet in alltweets: 
     f.write(str(tweet.text)) 
     f.write('\n') 
     f.close() 
    tweets = (tweet.text) 
    return tweets 
    pass 
# to encode the data 
reload(sys) 
sys.setdefaultencoding('utf-8') 

if __name__ == '__main__': 
    get_all_tweets("xyz") 

答えて

1

は、あなただけの取得20に次の行を編集しようとしたことがありますか?

変更:

new_tweets = api.user_timeline(screen_name=screen_name, count=200) 

へ:

new_tweets = api.user_timeline(screen_name=screen_name, count=20) 
+0

この出力と同じ出力を示します。 new_tweets = api.user_timeline(screen_name = screen_name、count = 200) – aneeket

+0

実際に返ってきたつぶやきの数を数えましたか?カウントが200に設定されている場合でも、実際には200を返すことになるわけではありません。カウントが200に設定されていると、APIには20 – AK47

+0

の上限が設定されます:「ツイートが556815543647215616になる前に取得する .. が98265272319 前にツイート... が344033624594735103 前にツイートを取得してこれまでにダウンロード599件のツイート... が224551285863624703 前にツイートを取得してこれまでにダウンロード759ツイートを取得してこれまでにダウンロード0.399ツイートは... 759ツイートは次のように「これまでにダウンロードこの。カウント= 20の場合、つぶやきを得るのに20の差だけが表示されます – aneeket

0

'TESTFILE.TXT' のつぶやきが含まれている場合は、最新から最古へ:

n = whatever value you want 
tweetArr = [] 
f = open("test file.txt:, "r") 
count = 1 
for line in f: 

    if count <= n: 
     tweetArr.append(line) 

    count += 1 

tweetArrがnを含む最新のツイート

+0

私は、以前のものと同じ出力を持つurコードを試しました。 – aneeket

関連する問題