2016-05-02 13 views
0

Tweepyの経験が豊富な人は、助けてくれれば幸いです。私はTkinterEntryウィジェットを介してユーザー入力を受け取り、返されるツイートをフィルタリングするGUIアプリケーションを作成しています。Tweepyは単語全体ではなく文字のみを検索します

Tweepyドキュメントに指定されているように実装されたリスナークラスを追加しました。定義済みのtweet_boxにツイートテキストを追加するだけで、Textウィジェットが表示されます。

def on_data(self, data): 
    tweet = json.loads(data)   
    tw = tweet['text'] 
    tweet_box.insert(tk.END, tw) 
    tweet_box.insert(tk.END, "\n") 
    tweet_box.see(tk.END) 
    time.sleep(2) 
    return True 

次に、これを使用してつぶやきをフィルタリングしています。

auth = OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_secret) 
self.listener = TwListener() 
streamer = Stream(auth, self.listener) 
streamer.filter(track=self.search_field.get()) 

search_field.get()方法は、ユーザがによってフィルタリングする用語を入力Entryウィジェットから来ています。

だから私の理解では、.get()メソッドを呼び出すときに、あなたが使用するため、その値を返すことができるはず、search_fieldにあるものです。そして、テストでは、単にその価値をプリントアウトする - それは動作します。しかし、フィルタのtweepyラッパーに入ると、値全体を取り込むようには見えませんが、By-letterベースで検索が実行されているようです。同様に、ユーザーが 'Python'を入力すると、PやY、Tなどを検索します。

これはなぜ起こっているのですか?誰も同じような経験をしていますか?

答えて

2

Streaming With Tweepy状態:

"トラックパラメーターは、ストリーミングする検索語の配列です。"

あなたのコードは次のようなリストでは単一の文字列ラップする必要があります:私はすでにこれをしようとした宣誓している可能性が

streamer.filter(track=[self.search_field.get()]) 
+0

を!あなたが提案したように試してみると、うまくいく - ありがとう。 – eggman

関連する問題