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



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

(我使用的是蟒蛇3(

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

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("%sn"%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)

请让我知道,如果有任何方法,我只能得到时间线更新。

是的,有一种方法可以做到这一点。

当你第一次得到你的推文列表时,记下最近一条推文的ID。

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

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

不过也有一些限制:

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

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

最新更新