2016-08-08 8 views
0

現在、Streaming APIを使用してデータを収集するのにtweepyを使用しています。Twitterでストリーミングする:cp949コーデック

これは私のコードです。私はこれをAcacondaコマンドプロンプトで実行しました。ストリーミング開始時に、それはつぶやきを返し、その後、いくつかのつぶやきを与えた後に、次のエラーを与える:

Streaming Started ... 
RT @ish10040: Crack Dealer Released Early From Prison By Obama Murders Woman And Her 2 Young Kids… Exception in thread Thread-1: 
Traceback (most recent call last): 
    File "C:\Users\Jae Hee\Anaconda2\lib\threading.py", line 801, in __bootstrap_inner 
    self.run() 
    File "C:\Users\Jae Hee\Anaconda2\lib\threading.py", line 754, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "C:\Users\Jae Hee\Anaconda2\lib\site-packages\tweepy\streaming.py", line 294, in _run 
    raise exception 
UnicodeEncodeError: 'cp949' codec can't encode character u'\xab' in position 31: illegal multibyte sequence 

私はそれが私がこの問題に対処するためにCHCP 65001を使用しますが、それは与えないように、エンコーディングに関係していると信じていますソリューション!ここで

コード

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 

api = tweepy.API(auth) 


class MyStreamListener(tweepy.StreamListener): 

    def on_status(self, status): 
     print(status.text) 

    def on_error(self, status_code): 
     #returning False in on_data disconnects the stream 
     if status_code == 420: 
      return False 

def main(): 

    myStreamListener = MyStreamListener() 
    myStream = tweepy.Stream(auth = api.auth, listener = myStreamListener) 


    print "Streaming Started ..." 

    try: 
     myStream.filter(track=['Obama'], async = True) 
    except: 
     print "error!" 
     myStream.disconnect() 

if __name__ == '__main__': 
    main() 

答えて

0

でTwitterのAPIを経て製造され、受け入れのすべてのテキストはUTF-8としてエンコードする必要がありますので、あなたのコードが戻ってきているものデコードすることコーデックを使用する必要があります。

はこちらをご覧ください:https://dev.twitter.com/overview/api/counting-characters

+0

私もu'Obamaを使用してみました」が、まだ動作しませんトラック文字列のために。 UTF-8を使用する必要があることを知っているので、chcp 65001を実行しましたが、まだ動作しません。 – user1917231

関連する問題