当前位置: 首页 > 知识库问答 >
问题:

使用python中的tweep从twitter帐户时间线获取更新

岳良策
2023-03-14

我正在尝试使用tweepy从推特收集数据。我已经能够获取用户名时间线并将其存储在csv文件中,但是,我想获得新的更新,并在用户名的时间线中有更新时更新我的csv文件。

(我用的是python3)

我从用户名时间行收集数据的代码是:

def get_tweets(api, username, limit):
alltweet =[]
fid2 = open('_3200unfilteredTweets.csv','w')

""" Download Tweets from username account """
for status in tqdm(tweepy.Cursor(api.user_timeline, screen_name=username,tweet_mode='extended').items(limit),
                   unit="tw", total=limit):

    alltweet.append(status.full_text)
#    store(status._json)        
    process_tweet(status)
for line in alltweet:
   fid2.write("%s\n"%line)

此外,以下代码允许我在特定时间之间获取推文,但是由于我有几个用户来收集数据,我无法回忆起上次获取推文的时间。

startDate = datetime(2011, 6, 1, 0, 0, 0)
endDate =   datetime(2012, 1, 1, 0, 0, 0)

tweets = []
tmpTweets = api.user_timeline(username)
for tweet in tmpTweets:
    if tweet.created_at < endDate and tweet.created_at > startDate:
        tweets.append(tweet)

while (tmpTweets[-1].created_at > startDate):
    tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id)
    for tweet in tmpTweets:
        if tweet.created_at < endDate and tweet.created_at > startDate:
            tweets.append(tweet)

请让我知道,如果有什么办法,我只能得到时间表更新。

共有2个答案

卢光誉
2023-03-14

你应该看看Twitter API和tweepy提供的流媒体选项。https://tweepy.readthedocs.io/en/v3.5.0/streaming_how_to.html

罗鸿畴
2023-03-14

是的,有办法做到这一点。

首次获取推文列表时,请记下最新推文的 ID。

下次调用user_timeline时,可以添加since_id=……

这将获得在您最近的推文ID之后发布的所有推文。

尽管有一些限制:

返回ID大于指定ID(即,比指定ID更新)的结果。可以通过API访问的Tweet数量有限制。如果自since_id以来出现了Tweets的限制,since_id将被强制为可用的最旧id。

 类似资料:
  • 当使用Tweepy收集视频推文时,通常返回的状态对象有一个属性,其中包含媒体信息,如指向mp4文件的直接链接。 但是,似乎Amplify视频(amp.twimg.com)的状态缺少此属性,因此我在收集媒体URL时遇到问题。如果您使用浏览器(例如 http://amp.twimg.com/v/50bac95c-1508-40c6-a0fc-c1b26a53a3b8)导航,他们有一个指向视频的链接,这

  • 我试图用python和tweepy检索一个包含我个人twitter状态全部内容的列表。 我已经通过OAuth成功验证了身份,但似乎无法从twitter收到超过800条状态更新。我的推特个人主页说我有2000多条推特。我完全在推特对我们施加的3200条推特限制之内。 任何帮助都将不胜感激! 这是我当前的代码(减去OAuth API身份验证):

  • 问题内容: 我想从一个Twitter用户获得所有用户推文,到目前为止,这是我想出的: 请忽略不必要的导入。一个问题是,这只会获得用户最近的推文(或前20条推文)。是否可以让所有用户发布推文?据我所知,GEt_user_timeline(?)仅允许限制为3200。是否有办法获得至少3200条推文?我究竟做错了什么? 问题答案: 您的代码存在一些问题,包括一些多余的导入。特别是,你不需要和-能够处理你

  • 我正在尝试使用twitter4j检索twitter用户的时间线。我可以使用2.6版来实现这一点,但现在我升级到3.03版,并开始从twitter获取authenticaton错误。 401:身份验证凭据(https://dev.twitter.com/pages/auth)丢失或不正确。确保已设置有效的使用者密钥/密码、访问令牌/密码,并且系统时钟同步。消息-无法验证您的身份代码-32 这就是我如

  • 我一直在使用Tweepy通过流媒体API收集某个地区的推文,我只收集了一条推文的纬度/经度,但我想添加更多,我不确定具体是什么。我使用这段代码来获取lat/long值: 我想把具体的用户名(@handle)和Tweet创建的时间打印到文本文件中。我不确定是否应该在< code > if decoded . get(' coordinates ',None)not None:循环中这样做。

  • 我目前正在编写一个通过Twitter API穿越用户时间线的web应用程序。我在获取或处理数据方面没有问题。我的问题是速度。Twitter API将每页可以检索的推文数量限制为200条。分页是通过在(max_ID)中传递一个参数来完成的,该参数是您在上一页上阅读的最后一条推文。有没有人能想到提高我收到这些推特的速度?我用的是亚伯拉罕·奥古斯利卜。我的代码如下: 如你所见,目前我在while循环中放