tweepy api.user_timeline:数量限制为200

时间:2017-10-13 16:53:30

标签: python twitter tweepy

似乎用tweepy我只能使用user_timeline方法获得200条推文。

class Twitter_User():
    def __init__(self,id,count=200):
        self.id = id
        self.count = count
        self.data = None
    def get_tweets(self):
        store_tweets = api.user_timeline(self.id, count=self.count)
        simple_list = []
        for status in store_tweets:
            array = [status._json["text"].strip(), status._json["favorite_count"], status._json["created_at"],status._json["retweet_count"],[h["text"] for h in status._json["entities"]["hashtags"]]]
            simple_list.append(array)
        self.data = pd.DataFrame(simple_list, columns=["Text", "Like", "Created at","Retweet","Hashtags"])
        self.data = self.data[~self.data["Text"].str.startswith('RT')]
        return self.data
    def __repr__(self):
        id = api.get_user(self.id)
        return id.screen_name

如果我把self.count作为一个大于200的数字,我总会得到一个200行的数据帧,相反,如果我把一个较小的数字,我得到正确的行数。我不知道,有限制还是我必须使用其他方法?

4 个答案:

答案 0 :(得分:4)

一次请求中最多只能获得200条推文。但是,您可以连续请求旧推文。您可以在时间轴中获得的最大推文数为3200.引用为here

你可以用tweepy做到这一点,但你需要使用tweepy的Cursor来获取这些连续的推文页面。看看this让你入门。

答案 1 :(得分:1)

根据Twitter API docs,您可以从Office.all().then(function (data) { console.log(data); $scope.officeList = data; }); 检索的最多记录为200

从count参数的定义:

  

指定尝试和检索的推文数量,每个不同请求最多200个。 count的值最好被认为是要返回的推文数量的限制,因为在应用计数后删除了暂停或删除的内容。即使未提供include_rts,我们也会在计数中包含转推。建议您在使用此API方法时始终发送include_rts = 1。

来自api.py第114行的tweepy source code

/statuses/user_timeline/

答案 2 :(得分:0)

要获得大于200的值,您需要在cursor上使用user_timeline,然后遍历页面。

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 pages in tweepy.Cursor(api.user_timeline, id='id', count=200).pages():        
   print(pages)

答案 3 :(得分:0)

使用tweepy游标, #MuniLima 是推特账号, #最初为空的列表,它们以For循环开始。存储高音值:'create_at','favourite_count','text'

tweeteo=[]
likes=[]
time = []
for tuit in tweepy.Cursor(api.user_timeline,screen_name='MuniLima').items(2870):
    time.append(tuit.created_at)
    likes.append(tuit.favorite_count)
    tweeteo.append(tuit.text)