[英]Python Twitter API Stream tweepy trying to save data to a CSV file
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
ckey = 'hidden due to question'
csecret = 'hidden due to question'
atoken = 'hidden due to question'
asecret = 'hidden due to question'
class listener(StreamListener):
def on_data(self, data):
try:
print (data)
saveFile = open('TwitterAPI.csv','a')
saveFile.write(data)
saveFile.Write('\n')
saveFIle.close()
return (True)
def on_error(self, status):
print (status)
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["car"])
上面代码的问题在于它不断出现一条错误消息,指出// def on_error //行中出现意外的unindent
您打开一个try
块而不捕获异常。
https://docs.python.org/3/tutorial/errors.html
另外要小心,python是区分大小写的,所以saveFile
不是saveFIle
, saveFile.write()
也不是saveFile.Write()
...
编辑你的on_data()
处理程序如下所示应该使它工作:
def on_data(self, data):
try:
print(data)
with open('TwitterAPI.csv','a') as f:
f.write(data)
except Exception as e: # here catch whatever exception you may have.
print('[!] Error : %s' % e)
编辑:下面是您重新编写的完整代码:
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
ckey = 'hidden due to question'
csecret = 'hidden due to question'
atoken = 'hidden due to question'
asecret = 'hidden due to question'
class listener(StreamListener):
def on_data(self, data):
try:
print(data)
with open('TwitterAPI.csv','a') as f:
f.write(data)
except:
pass
def on_error(self, status):
print (status)
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["car"])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.