2016-09-17 70 views
1
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"]) 

上面的代码的问题是,它一直在提出一个错误消息,指出有一个意外的unindent在//def on_error // rowPython Twitter API流tweepy试图将数据保存到CSV文件

回答

0

您打开一个try块,但没有捕捉到异常。

https://docs.python.org/3/tutorial/errors.html

另外要小心,蟒蛇是大小写敏感的,所以saveFilesaveFIle,也不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"]) 
+0

一条错误消息,指出意外缩进仍然存在 '级监听器(StreamListener): 高清on_data(个体经营,数据): 尝试: 打印(数据) 开放(' TwitterAPI .csv','a')作为f: f.write(data) 除了Exception作为e:#这里可以捕获你可能有的任何异常。 打印( '错误[!]:%s' 的%E) DEF ON_ERROR(个体,状态): 打印(状态) AUTH = OAuthHandler(CKEY,csecret) auth.set_access_token(atoken,asecret) twitterStream =流(auth,listener()) twitterStream.filter(track = [“car”])' – harreskhan

+0

您能告诉我错误信息吗? –

+1

对不起,我是python的新手,从来没有在 – harreskhan