

プログラム内容

[code]

    # -*- coding: utf-8 -*-
    
    from tweepy.streaming import StreamListener
    from tweepy import OAuthHandler
    from tweepy import Stream
    
    consumer_key = ""#引用符の中にconsumer_keyの情報を記述する
    consumer_secret = ""#引用符の中にconsumer_secretの情報を記述する
    
    access_token = ""#引用符の中にaccess_tokenの情報を記述する
    access_token_secret = ""#引用符の中にaccess_token_secretの情報を記述する
    
    class StdOutListener(StreamListener):
        def on_data(self, data):
            if data.startswith("{"):
                print data
            return True
    
        def on_error(self, status):
            print status
    
    if __name__ == '__main__':
        l = StdOutListener()
        auth = OAuthHandler(consumer_key, consumer_secret)
        auth.set_access_token(access_token, access_token_secret)
    
        stream = Stream(auth, l)
        stream.filter(track = [u"日本"])#検索する場合
        if 'stream' in stream:
            print stream['text'].encode('utf-8')
    #    stream.sample()#ツイートのランダムサンプリングを取得する場合
    #    stream.userstream()#タイムラインを取得する場合
    
[/code]

実行結果

[code]

    [root@localhost デスクトップ]# python intento.py
    {"created_at":"Thu Sep 22 08:01:36 +0000 2016","id":778866827346714624,"id_str":"778866827346714624","text":"RT @RealOviedo: \u00a1Buenos d\u00edas, oviedistas! S\u00ed, hoy jugamos en casa (20h) #RealOviedoReus https:\/\/t.co\/qKRRBF2eot","source":"\u003ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter for Android\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":714885097,"id_str":"714885097","name":"Gorkitta","screen_name":"gorka_laporte","location":null,"url":null,"description":"Zu zara nagusia.\nREAL OVIEDO \u2764\u2764 ATHLETIC CLUB","protected":false,"verified":false,"followers_count":368,"friends_count":278,"listed_count":11,"favourites_count":2643,"statuses_count":15851,"created_at":"Tue Jul 24 20:30:59 +0000 2012","utc_offset":12600,"time_zone":"Tehran
    
[/code]

上記のプログラムをtextで表示して欲しいのですがうまくいきません。  
例えば`＠saksa 日本最高だ！` のようにtextで表示して欲しいです。  
もしやり方がわかる方いれば、教えていただけるとありがたいです  
よろしくお願いいたします。


CC BY-SA 3.0
2016-09-24T03:09:24.090
29084
2016-10-06T15:43:39.950
2016-09-24T03:38:41.183
3605
18859
question
python twitter
Tweepy.streamingを用いたプログラムでツイートの取得をタイムラインで取得したい


`on_data`の`data`のデータ形式は複数あるのでしょうか。JSONが来た時だけ反応するようにするなら、次のようにすれば良いと思います。

[code]

    import json
    def on_data(self, data):
        try:
           payload = json.loads(data)
           print payload.get('text')
           return True
        except:
           pass
        return False
    
[/code]


CC BY-SA 3.0
2016-10-06T15:43:39.950
29397
2016-10-06T15:43:39.950
7837
29084
answer