検索関連

ツイートを対象とする検索 REST API はただひとつしかない。

GET search/tweets

単純な検索を行うには GET search/tweets を利用する。いつの間にかインターフェイスが変更されていたので、サンプルコードを一度書き直した。

#!/usr/bin/env python

# Demonstration GET search/tweets
# See https://dev.twitter.com/rest/reference/get/search/tweets

from secret import twitter_instance

MAX_COUNT = 30

tw = twitter_instance()

# [1]
kwargs = dict(
    q='ネシカ OR nesica',
    include_entities=False,)

# [2]
total = 0
while total < MAX_COUNT:
    # [1]
    response = tw.search.tweets(**kwargs)

    # [2]
    if not 'statuses' in response or not response['statuses']:
        break

    metadata = response['search_metadata']
    statuses = response['statuses']
    max_id = metadata['max_id']
    min_id = statuses[-1]['id']
    total += metadata['count']

    # [3]
    for tweet in statuses:
        print('{created_at}|@{user[screen_name]}|{text}'.format_map(
            tweet).replace('\n', '\\n'))

    # [4]
    kwargs['max_id'] = min_id - 1
  • [1] ネシカ または nesica という単語を含むツイートを検索する。

    検索したい単語等をメソッド search.tweets に与える。キーワード引数の指定方法にコツがあるようだ。

  • [2] 取得ツイート数が MAX_COUNT を超えるか、取得データ中にまったくツイートがない場合はループを抜けることにする。アプリケーションによってはツイート時刻に何らかの境界値を設けてもよいだろう。

  • [3] 検索結果に含まれるデータのうち、ツイート群を出力する。この例ではツイートのタイムスタンプ、スクリーンネーム、本文だけをコンソールに出力する。

    日付は標準時 (+0000) で得られる?

  • [4] 次回リクエストで取得したいのツイートの範囲を絞るためのパラメーターを仕込む。オプション引数 max_id を指定することで、日付の新しい側の境界値を指示できる。

実行例を示す(出力を一部加工した)。リツイートをなんとかするオプションはない。

bash$ ./search-tweets.py
Sat Nov 28 13:18:55 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:55 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:51 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:34 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:25 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:10 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:18:03 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:49 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:47 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:46 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:38 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:37 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:35 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:34 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:32 +0000 2015|@<CENSORED>|RT @<CENSORED>: 明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:17:20 +0000 2015|@<CENSORED>|明日、クラブセガ秋葉原 新館さんで、稼働記念イベントを開催します!特製のNESiCAシールもプレゼント!プロデューサー間とディレクター鯨岡のトークショーで開発の裏話も・・・。\nご来場お待ちしております!#DFF_A
Sat Nov 28 13:14:31 +0000 2015|@<CENSORED>|フリプ中にカード登録しようとしたけどネシカに嫌われてカード登録できなかった…
Sat Nov 28 13:09:36 +0000 2015|@<CENSORED>|とりあえずネシカ作ろ
Sat Nov 28 13:06:56 +0000 2015|@<CENSORED>|ディシディアってNESiCAいんの\nってかNESiCAて何やったっけ•́ω•̀)?
Sat Nov 28 13:02:41 +0000 2015|@<CENSORED>|頭からゴミ箱に突っ込んでネシカ失くした奴がいるらしいな
Sat Nov 28 13:00:13 +0000 2015|@<CENSORED>|@<CENSORED> 9位はヤバイwwwwww\n一応ネシカでできるよ!
Sat Nov 28 12:58:10 +0000 2015|@<CENSORED>|ディシディアやるためにまたネシカ買うか買わないか悩む
Sat Nov 28 12:57:11 +0000 2015|@<CENSORED>|ていうか、マジでNESiCA虹咲に戻らないかなー\n前の作品でいいから教えてもらいながら練習したい
Sat Nov 28 12:56:53 +0000 2015|@<CENSORED>|@<CENSORED> 3回もしたんですかぇ・・・\n俺前聞いてから徹底してます\n\nでも初めてやるゲームにネシカを忘れる雑魚でしたw\n \n客なんて俺たち含めて10人もいなかったのにおかしい
Sat Nov 28 12:56:39 +0000 2015|@<CENSORED>|天体でCFver.のネシカ買えて大満足
Sat Nov 28 12:55:45 +0000 2015|@<CENSORED>|むう、気合抜け…。\n1)残業から写真整理\n2)帰路から横浜フリーダムでKOF13&gt;ぶらぶら\n3)帰路から直帰し寝る\n\nさて…どうしよ。横浜フリーダムのネシカ争いに勝てるのか?
Sat Nov 28 12:52:50 +0000 2015|@<CENSORED>|ネシカの登録がなんかできなかったのがムカつくᕕ(´◔ ω◔`)ᕗ、
Sat Nov 28 12:52:26 +0000 2015|@<CENSORED>|NESiCAはヤタガラスとBBCF
Sat Nov 28 12:51:51 +0000 2015|@<CENSORED>|@<CENSORED> ネシカないとチュートリアルしかできなかった気がする。 なんにせよあったほうがいいね。
Sat Nov 28 12:50:33 +0000 2015|@<CENSORED>|NESiCAの300のデアドを60まで持ってくことに成功しました