Python 使用StreamListener将twitter用户信息保存到文件中
我想在我的文件中保存twitter用户信息,如姓名、状态、tweet(首选json、txt、csv或任何其他json或文本)。我试过这个代码和其他类似的代码,但都不起作用。大家看一下下面的代码,并建议我应该做哪些更改Python 使用StreamListener将twitter用户信息保存到文件中,python,json,twitter,tweepy,twitter-streaming-api,Python,Json,Twitter,Tweepy,Twitter Streaming Api,我想在我的文件中保存twitter用户信息,如姓名、状态、tweet(首选json、txt、csv或任何其他json或文本)。我试过这个代码和其他类似的代码,但都不起作用。大家看一下下面的代码,并建议我应该做哪些更改 import time from tweepy import Stream from tweepy import OAuthHandler from tweepy.streaming import StreamListener import os import json ckey
import time
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import os
import json
ckey = '**********'
consumer_secret = '**********'
access_token_key = '**********'
access_token_secret = '**********'
start_time = time.time() #grabs the system time
keyword_list = ['twitter'] #track list
#Listener Class Override
class listener(StreamListener):
def __init__(self, start_time, time_limit=60):
self.time = start_time
self.limit = time_limit
def on_data(self, data):
while (time.time() - self.time) < self.limit:
try:
all_data = json.loads["text"]
username = all_data["user"]["name"]
tweets = all_date["user"]["statuses"]
saveFile = open('raw_tweets29.json', 'a')
saveFile.write(username)
saveFile.write('\n')
saveFile.close()
return True
except BaseException, e:
print 'failed ondata,', str(e)
time.sleep(5)
pass
exit()
def on_error(self, status):
print statuses
auth = OAuthHandler(ckey, consumer_secret) #OAuth object
auth.set_access_token(access_token_key, access_token_secret)
twitterStream = Stream(auth, listener(start_time, time_limit=20))
twitterStream.filter(track=['twitter'])
导入时间
从tweepy导入流
从tweepy导入OAuthHandler
从tweepy.streaming导入StreamListener
导入操作系统
导入json
ckey='***********'
消费者秘密=“************”
访问令牌密钥='***********'
访问令牌密钥='***********'
start_time=time.time()#获取系统时间
关键词_list=['twitter']#跟踪列表
#侦听器类重写
类侦听器(StreamListener):
定义初始时间(自身、开始时间、时间限制=60):
self.time=开始时间
self.limit=时间限制
def on_数据(自身、数据):
while(time.time()-self.time)
当我运行下面的代码时,会出现错误-数据失败,'function'对象没有属性'\uu getitem'
如果您能为我解决这个问题提供任何帮助,我将不胜感激我犯了一些错误,现在我发现不需要临时变量“text”,我需要做的是加载实际数据。 需要做的还有一件事就是编码。 谢谢大家抽出时间
import time
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import os,sys
import json
ckey = '***'
consumer_secret = '***'
access_token_key = '***'
access_token_secret = '***'
start_time = time.time()
class listener(StreamListener):
def __init__(self, start_time, time_limit=300):
self.time = start_time
self.limit = time_limit
def on_data(self, data):
while (time.time() - self.time) < self.limit:
try:
tweet = json.loads(data)
user_name = tweet['user']['name']
tweet_count = tweet['user']['statuses_count']
text = tweet['text']
saveFile = open('user_tweets29.json', 'a')
saveFile.write(text.encode('utf8'))
saveFile.write('\n')
saveFile.close()
return True
except BaseException, e:
print 'failed ondata,', str(e)
time.sleep(5)
pass
exit()
def on_error(self, status):
print statuses
auth = OAuthHandler(ckey, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
twitterStream = Stream(auth, listener(start_time, time_limit=60))
twitterStream.filter(track=['twitter'])
导入时间
从tweepy导入流
从tweepy导入OAuthHandler
从tweepy.streaming导入StreamListener
导入操作系统,系统
导入json
ckey='***'
消费者秘密=“***”
访问令牌密钥='***'
访问令牌密钥='***'
开始时间=time.time()
类侦听器(StreamListener):
定义初始时间(自身、开始时间、时间限制=300):
self.time=开始时间
self.limit=时间限制
def on_数据(自身、数据):
while(time.time()-self.time)
我建议您不要将钥匙包含在问题中。另外,您的try,except部分涵盖了太多的命令。尽量减少它,以便您可以正确地调试它。您使用的是哪个Python版本?我使用的是2.7.3,execption可能是因为Try blockFYI-我复制了错误,但代码看起来是正确的。然后尝试为Python3修改它,但在运行时遇到了一个已知的错误,其中流缓冲区返回字节,但用字符串初始化。也许可以尝试一种不同的API,比如Joel Grus在其著作《从头开始的数据科学》中演示的twython(),请参见can you update上的代码,以准确跟踪错误。