如何使用Tweepy获取推文的年龄?

0 投票
1 回答
1546 浏览
提问于 2025-04-18 04:42

我正在尝试使用Tweepy来获取某个特定用户一周之前的推文列表,但我不知道怎么判断一条推文的时间。现在我知道怎么获取推文列表,但在文档里找不到关于推文时间的信息。Tweepy有没有这样的功能?如果没有,我应该使用其他库吗?如果是的话,有什么库可以做到这一点呢?谢谢!

1 个回答

0

其实这很简单。你收集的每条推文都有很多标签数据,包括发布的日期。你可以通过 Status.created_at 这个属性来访问这些数据:

import tweepy, time, datetime

CONSUMER_KEY = '#'
CONSUMER_SECRET = '#'
ACCESS_TOKEN = '#'
ACCESS_TOKEN_SECRET = '#'
key = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
key.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(key)

results = api.search(q='tryptophan')

dates = []

for tweet in results:
    dates.append(tweet.created_at)

ages = []

for d in dates:
    # to compare against time.time(), we must use seconds since the epoch (1/1/1970)
    # time.time() returns the current time, in seconds, since 1/1/1970
    age = time.time() - (d - datetime.datetime(1970,1,1)).total_seconds()
    ages.append(age) # age in seconds

for i in range(0,len(ages)):
    print 'Tweeted:', str(dates[i]) + ', age in seconds:', ages[i]

结果:

Tweeted: 2014-05-03 05:39:40, age in seconds: 4564.01300001
Tweeted: 2014-05-03 04:45:47, age in seconds: 7797.01300001
Tweeted: 2014-05-03 04:21:40, age in seconds: 9244.01300001
Tweeted: 2014-05-03 03:56:01, age in seconds: 10783.013
Tweeted: 2014-05-03 01:24:53, age in seconds: 19851.013
Tweeted: 2014-05-03 00:44:49, age in seconds: 22255.013
Tweeted: 2014-05-03 00:31:50, age in seconds: 23034.013
Tweeted: 2014-05-02 22:23:15, age in seconds: 30749.013
Tweeted: 2014-05-02 22:00:12, age in seconds: 32132.013
Tweeted: 2014-05-02 21:22:18, age in seconds: 34406.013
Tweeted: 2014-05-02 20:54:45, age in seconds: 36059.013
Tweeted: 2014-05-02 20:33:59, age in seconds: 37305.013
Tweeted: 2014-05-02 20:31:45, age in seconds: 37439.013
Tweeted: 2014-05-02 15:16:43, age in seconds: 56341.013
Tweeted: 2014-05-02 15:05:03, age in seconds: 57041.013

这里的“自纪元以来的秒数”有点复杂,你可以在 这里 了解更多。这个年龄是以秒为单位的,但你可以通过除以60来轻松转换为分钟,再除以60得到小时,最后除以360得到天数。

撰写回答