Twitter API v2を使って特定アカウントのツイートを取得
Twitter API v2
の機能の中にUser Tweet timeline
というものがあり、これによって任意のアカウントのタイムラインを取得できる。
これを利用して、コウメ太夫氏のTwitterアカウントから「#まいにちチクショー」を取得する。
以下に示す「コウメ太夫百人一首」を作ることが目的。
1. 開発者登録・環境構築など
このあたりの作業は以下の記事通りにされている前提。
2. コウメ太夫氏の全ツイート取得
2.1. ユーザーID取得
Twitterには名前(name)、ユーザー名(username)に加えてプロフィールに表示されないユーザーID(id)が存在する。
この後の処理でユーザーID(id)が必要になるため事前に取得する。
種類 | 型 | 説明 | 例 |
---|---|---|---|
id | string | ユーザーのID | 4790312834 |
name | string | ユーザーの名前 | KEN |
username | string | ユーザーの名前(@の後のやつ) | CircleKENdotNet |
これについては以前の記事でも使用したUser lookup
を用いる。
以前の記事↓
コウメ太夫氏のusername
は@dayukoume
なのでusernames = ["dayukoume"]
とする。
1 | import requests |
するとコウメ太夫氏のid
、「391900115」が得られる。
2.2. ツイート取得
Twitter API v2
のUser Tweet timeline
機能を使って任意のユーザーIDのアカウントのツイートを取得できる。
さきほど入手したコウメ太夫氏のユーザーIDを代入してuser_id = 391900115
とする。
欲しいのはツイート本文だけなのでtweet_fields = ["id", "text"]
とする。
(idは必須)
他に取得したい情報があれば以下の記事の4. 取得できる属性
にいろいろ説明が書いてある。
1 | import requests |
これによって3249件のコウメ太夫氏のツイートが得られた。
3. まいにちチクショーの抽出
コウメ太夫氏のツイートのすべてが「#まいにちチクショー」というわけではない。
したがって得られたツイートの中から必要なものだけを抽出する必要がある。
3.1. 必要なチクショー
コウメ太夫氏の「#まいにちチクショー」を観察すると、例外はあるがおおむね以下の構文によって構成されていることが分かる。
1 | 〇〇たら~、 |
ここで、〇〇たら~、
部を上の句。××した~。
部を下の句とする。
今回の目的である成果物「コウメ太夫百人一首」では「対応する上の句と下の句のセット」が必要となるため、この構文を利用してあてはまるものを取得する。
必ずしも全ての「#まいにちチクショー」を網羅する必要はないため例外は無視する。
3.2. koume_perser
以下に示すkoume_perser.py
によって「#まいにちチクショー」から「対応する上の句と下の句のセット」を取得した。
その総数は2118件、ゲームに用いるには十分な量だ。
1 | import csv |
4. 成果物
「#まいにちチクショー」の抽出によって「コウメ太夫百人一首」は完成を迎えた。