在Python下载关于某些主题的所有推文

时间:2015-02-12 16:32:49

标签: python twitter bigdata

我正在做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中使用更快的方法吗?

要明确:例如,我想在上个月/每年下载某个主题的所有推文。因此,最新的推文不必继续进入,一段时间内的最新推文就足够了。谢谢!

1 个答案:

答案 0 :(得分:0)

我需要类似的东西进行学术研究。 我们能解决吗? 是否可以指定从中提取数据的自定义时间范围?

很抱歉在这里询问,但无法向您发送私信。