まいだいありー

機械学習、技術系、日記など勉強したことのメモを書けたらなと思います。

twint でTwitterからツイートを収集する

twint でツイート収集

Twitter API を使ってツイートするのは良いですが色々と制限があるので, twint というPythonのパッケージを用いて収集してみます.

インストール

おそらく, 以下でインストールすると実行してもツイートを収集できないので,

pip install twint 


こちらでインストールします.

pip install  git+https://github.com/himanshudabas/twint.git@origin/master#egg=twint


いざツイート収集

ここではあるワードを含むツイートを収集してみます twint の実行は CLI でもできますが便利上今回はPythonで書きます.

(設定する Config の種類はこちらで確認できます. )

import twint
def Twitter_Scraper(search_word,since_date,until_date,output_filename):
    c = twint.Config
    c.Search = search_word
    c.Store_json = True # Store_csvもあるがカラム名が入らなかったため不採用
    c.Output = output_filename
    c.Since = since_date
    c.Until = until_date
    c.Hide_output = True # False にするとツイートがターミナルに出力
    twint.run.Search(c)


Twitter_Scraper("おかえりモネ", "2021-05-16 00:00:00", "2021-05-17 13:00:00","twint_scrape.json")


実行すると以下のKeyについてのデータが逐次的にJSONフォーマットで書き込まれていきます.

['id', 'conversation_id', 'created_at', 'date', 'time', 'timezone',
       'user_id', 'username', 'name', 'place', 'tweet', 'language', 'mentions',
       'urls', 'photos', 'replies_count', 'retweets_count', 'likes_count',
       'hashtags', 'cashtags', 'link', 'retweet', 'quote_url', 'video',
       'thumbnail', 'near', 'geo', 'source', 'user_rt_id', 'user_rt',
       'retweet_id', 'reply_to', 'retweet_date', 'translate', 'trans_src',
       'trans_dest']

この後にPandasで分析したい場合は, 以下のように読み込むことでデータが整列します。

import pandas as pd
data = pd.read_json(output_file, lines=True)


参考

github.com