2016-04-18 14 views
1

tweepyを使ってtwitterからつぶやきを取得し、そのテキストを処理するプロジェクトに取り組んでいます。私が持っている問題は、絵文字、特殊文字などを持つことができないということです。残念ながら、私が使用しているライブラリの1つはPython 3をサポートしていないので、Python 2.7を使用する必要があります。 「人間が読めるテキスト」以外のすべてを削除する方法はありますか?私はftfyライブラリを使用していたが、私はまだこのようなものを得る:Python 2.7のtwitter投稿から絵文字のインスタンスをすべて削除する方法

  • ∩┐╜∩┐╜
  • φï░φîî∞▒ù

  • ��

私のコード:

import tweepy 
from ftfy import fix_text,fix_encoding 
from requests.exceptions import ConnectionError 
from requests.packages.urllib3.exceptions import ProtocolError,ReadTimeoutError 
import time 
import exceptions 

consumer_key = '...' 
consumer_secret = '...' 

access_token = '...' 
access_token_secret = '...' 

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



class MyStreamListener(tweepy.StreamListener): 
    def on_connect(self): 
     print 'Connected' 
    def on_status(self, status): 
     fixed_text = fix_text(fix_encoding(status.text)).encode('utf-8') 
     print fixed_text 
     return True 
    def on_error(self, status): 
     print status 
     return False 


running = True 
while running is True: 
    try: 
     print 'Connecting' 
     myStreamListener = MyStreamListener() 
     myStream = tweepy.Stream(auth=auth,listener=myStreamListener) 
     myStream.filter(track=['python']) 
    except ConnectionError: 
     print 'Connection Error: Waiting 10 seconds before retrying' 
     time.sleep(10) 
    except ProtocolError: 
     print 'ProtocolError: Waiting 10 seconds before retrying' 
     time.sleep(10) 
    except ReadTimeoutError: 
     print 'Read Timeout Error: Waiting 10 seconds before retrying' 

注:これはちょうど私のテストスクリプトですtwitterからつぶやきを取って印刷する方法を学ぶ

+1

いくつかのコードサンプルがありますか? – Wtower

+0

「特殊文字」または「人間が判読可能なテキスト」とは何と考えますか? –

+0

これらのつぶやきに由来するテキストは、私が始めようとしている自然言語処理プログラムで使用されています。私は 'è'のような特殊文字は気にしません。 – Justin6533

答えて

0

悪い文字列の線に沿って何かが返ってきたら、以下のコードがうまくいくはずです。

import re 
try: 
    # UCS-4 
    highpoints = re.compile(u'[U00010000-U0010ffff]') 
except re.error: 
    # UCS-2 
    highpoints = re.compile(u'[uD800-uDBFF][uDC00-uDFFF]') 
+0

@Rowand Adair:それは私に奇妙な出力を与えました。私はここでこのようなものを試しました:[リンク](http://stackoverflow.com/questions/26568722/remove-unicode-emoji-using-re-in-python?rq=1)それでも出力には絵文字があります。 – Justin6533

+0

emojisの文字範囲を確認して実装してください。具体的には、 "Tweepy"の絵文字の文字列 –

+0

@Rowand Adair:OK、可能な絵文字のリストをすべてUnicodeで見つけましたが、私はPython ucs-2の狭いビルドを持っていますが、私が見つけたUnicodeはucs-4(私はまだこれについて少し混乱しています)。私の発見したUnicodeをPythonの私のバージョンで使用できるものに変換するにはどうすればいいですか? – Justin6533

関連する問題