【问题标题】:Get updates from twitter account time line using tweeps in python在 python 中使用 tweeps 从 twitter 帐户时间线获取更新
【发布时间】:2019-04-15 20:59:11
【问题描述】:

我正在尝试使用 tweepy 从 twitter 收集数据。我已经能够获取用户名时间线并将其存储在 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)

如果有任何方法可以让我只获取时间线更新,请告诉我。

【问题讨论】:

    标签: python-3.x csv twitter tweepy


    【解决方案1】:

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

    当你第一次获得推文列表时,记下最新推文的 ID。

    下次拨打user_timeline可以加since_id=....

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

    但有一些限制:

    返回 ID 大于(即更新)指定 ID 的结果。可通过 API 访问的推文数量存在限制。如果自 since_id 以来已达到 Tweets 的限制,则 since_id 将被强制为可用的最旧 ID。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-11
        • 2015-03-11
        • 1970-01-01
        • 2013-07-22
        • 2012-07-06
        • 2013-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多