所以我试图获取自某一年以来符合特定搜索条件的所有推文(目前我只是提取 X 条推文,看看这个数字是否让我回到了我感兴趣的那一年在).
搜索条件只是推文中包含的字符串。以“苹果”为例。我也在尝试过滤掉 RT。
这显然将是数十万条,可能更像是数百万条推文。
为了尝试实现这一点,我一直在使用 Tweepy Twitter API:
def getTweets(searchValue, numOfTweets):
i = 0
tweetStream = tweepy.Cursor(twitterAPI.search, q=searchValue, tweet_mode="extended").items(numOfTweets)
f = open('csvfile.csv','w')
while True:
try:
for tweet in tweetStream:
if (tweet.full_text[0:2] != 'RT'):
print('Tweets processed:' + str(i))
f.write(str(formatTweet(tweet.full_text)))
f.write(str(tweet.created_at) + '\n')
i += 1
#Break here when all tweets in the stream have been processed
break
except tweepy.TweepError:
print('Sleeping for 2 mins to maintain Twitter API connection... \n')
time.sleep(120)
f.close()
return True
问题是它运行得非常慢。每秒可能会发布 50 条推文。如果我需要回到几年前,这意味着让我的程序运行数天/数周。
我之前没有使用过 Tweepy,所以我不确定实现我想要的最佳方式。我的代码是我在其他地方看到的几篇文章/答案的混合,所以我确定我的方法可能存在几个问题。有什么建议吗?