2015-09-18 79 views
1

我使用python twitter模塊來獲取我的朋友的推文。我用下面的代碼:我想用嘰嘰喳喳不是最新的200嘰嘰喳喳Python中的所有推文

import twitter 

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

auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET, 
          CONSUMER_KEY, CONSUMER_SECRET) 

twitter_api = twitter.Twitter(auth=auth) 
count = 0 
for tweets in twitter_api.statuses.user_timeline(screen_name="thekiranbedi",count=500): 
    try: 
     print tweets['text'] 
     count += 1 
    except Exception: 
     pass 

print count 

但作爲結果說,計數的值保持200,所以我從ID與screen_name='thekiranbedi只獲得了200個最近的鳴叫。但我想要所有的推文。如何做到這一點?

回答

1

這就是Twitter的API的限制,而不是蟒蛇,嘰嘰喳喳模塊:

https://dev.twitter.com/rest/reference/get/statuses/user_timeline

計數 - 指定鳴叫的次數嘗試和檢索,最多的200個不同請求。

所以據我所知,你必須使用'since_id'和'max_id'參數來收集鳴叫的下一部分。

+0

我明白了,但是在鏈接https://dev.twitter.com/rest/reference/get/statuses/user_timeline它寫在第三段說'這種方法只能返回到3,200的用戶最近的推文。無論在請求此資源時是否將include_rts設置爲false,用戶的其他狀態的本地轉發都包含在此總數中。因此,必須有辦法將所有3200個推文放在一行中? –

+0

我認爲這意味着如果您開始從0開始查看,它將返回200,如果您從3120開始的tweet將僅返回80. –

+0

您必須先收集第一批200條推文,然後查看最後一條推文的ID。並將其放入'since_id'或'max_id'參數中。然後你會得到下一個200.對不起,我還沒有檢查過,這只是一個想法。 –