0

私は Tweepy を使用しており、'wordA' と 'wordB' (各ツイートにいずれかが含まれることを意味します) という 2 つの別個の用語を追跡したいと考えていますが、それらの結果も別個の構造に保存したいと考えています。同じ認証オブジェクトに 2 つの別々のストリーム リスナーを設定することは可能ですか? これを行う方法を示すコード例をいただければ幸いです。ありがとう

4

1 に答える 1

1

ユーザーごとに許可されるストリームは1つだけなので、データを受信した後でストリームを分割する必要があります。

私はこれを次のような方法で行う傾向があります。

import tweepy
from tweepy.utils import import_simplejson
json = import_simplejson()
tracklist1=[wordA, wordAA]
tracklist2=[wordB, wordBB]

class CustomStreamListener(tweepy.StreamListener):

    def on_data(self, data):
        if 'in_reply_to_status_id' in data:
            temp=json.loads(data)
            words = [word.lower().strip('!,.:?"') for word in temp['text'].split()]
            if set(words) & set(tracklist1):
                print 'match A'
            elif set(words) & set(tracklist):
                print 'match B'
            else:
                print 'no match found'

私にとっては十分に機能します。tracklist1とtracklist2のリストを使用すると、探しているトピックごとに、より複雑な検索を作成できます。Twitterはユーザー名やストリーミングAPIのテキストと一致するため、常に一致しないものが表示されます。

これを適切に行うには、上記の例で行ったように最も一般的な句読点を削除するのではなく、英数字以外のすべてを除外することをお勧めします。

于 2012-11-10T22:11:05.640 に答える