我正在做Twitter情绪研究。出于这个原因,我正在使用Twitter API下载某些关键字的所有推文。但我目前的代码花了很多时间来创建一个大型数据文件,所以我想知道是否有更快的方法。
这就是我现在正在使用的:
__author__ = 'gerbuiker'
import time
#Import the necessary methods from tweepy library
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
#Variables that contains the user credentials to access Twitter API
access_token = "XXXXXXXXXXXXX"
access_token_secret = "XXXXXXXX"
consumer_key = "XXXXX"
consumer_secret = "XXXXXXXXXXXXXX"
#This is a basic listener that just prints received tweets to stdout.
class StdOutListener(StreamListener):
def on_data(self, data):
try:
#print data
tweet = data.split(',"text":"')[1].split('","source')[0]
print tweet
saveThis = str(time.time())+ '::'+ tweet #saves time+actual tweet
saveFile = open('twitiamsterdam.txt','a')
saveFile.write(saveThis)
saveFile.write('\n')
saveFile.close()
return True
except BaseException, e:
print 'failed ondata,',str(e)
time.sleep(5)
def on_error(self, status):
print status
if __name__ == '__main__':
#This handles Twitter authetification and the connection to Twitter Streaming API
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
#This line filter Twitter Streams to capture data by the keywords: 'Amsterdam'
stream.filter(track=['KEYWORD which i want to check'])
对于一个非常受欢迎的关键字(阿姆斯特丹),这让我在一小时内发送了大约1500条推文。现在有人在Python中使用更快的方法吗?
要明确:例如,我想在上个月/每年下载某个主题的所有推文。因此,最新的推文不必继续进入,一段时间内的最新推文就足够了。谢谢!
答案 0 :(得分:0)
我需要类似的东西进行学术研究。 我们能解决吗? 是否可以指定从中提取数据的自定义时间范围?
很抱歉在这里询问,但无法向您发送私信。