任意のハッシュタグのツイートを探すPythonスクリプトを書いてみる / ‘〜’と’~’の違いを知る

Pythonの練習も兼ねて、Twitter APIで遊んでみました。

検索条件

  • ツイートに「#はぁ〜また買っちゃった」または「#はぁ~また買っちゃった」のハッシュタグを含んでいる
  • ツイートに画像を含んでいる

「#はぁ〜また買っちゃった」と「#はぁ~また買っちゃった」は何が違う?

「ぁ」の1文字後ろの文字が違います。前者「〜」は「波ダッシュ」、後者「~」は「全角チルダ」です。Unicodeのコードポイントも異なっていて、全く違う文字として扱われています。

ツイート検索時は、「#はぁ〜また買っちゃった」と「#はぁ~また買っちゃった」のどちらかを含むようにしました。

ord()関数

スクリプトの内容

スクリプトの流れ

  1. https://developer.twitter.com/から取得しておいたAPI Key等を読み込む。(漏洩防止として.envに記述しておき、python-dotenvで環境変数として割り当てておく)
  2. search APIを叩き、検索を実行する
  3. oEmbed APIを叩き、search APIの取得結果を埋め込みツイートの形式に変換する
  4. jinja2で、埋め込みツイートを書き出す

リツイートは除外する

そのまま検索を実行するとリツイートも含んだ結果が返ってくるので、クエリに「-filter:retweets」を加えました。

画像を含んでいるかの判定

‘entities’に’media’を含んでいるかどうかで判定しました。(もっといい方法がありそう…?)

左:画像を含んでいる時/ 右:テキストのみの時

実行結果

bootstrapでレスポンシブに対応させているので、ウィンドウの大きさによって4~1カラムで表示されます。

4カラム
3カラム
2カラム
1カラム

課題

ウィンドウの横幅を縮小していった時、埋め込みツイートが重なってしまう時があります。フロントの知識は全然分からないので諦めています。

今後

DjangoかFlaskに載せて公開したい(かなぁ…)

GitHub