4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

デベロッパー登録なしで特定アカウントのツイートを取得する「TWINT」

Last updated at Posted at 2022-03-26

環境

Ubuntu 18.04.2 LTS (Bionic Beaver)
Python 3.6.9

概要

自分じゃない人のツイートを一括で入手できんかな、と思うことは良くあるが、
デベロッパー登録が面倒でいつもやらずにいた
(英文で「こんなことに使いたい」と書く必要があり、他の設問?もけっこう多い。レスポンスも数日単位)
どうやら登録せずにツイートを取得する方法があるようなので、試してみた。
Python3が使えれば、1行コマンドでインストールできる。
TWINTのプロジェクト GitHub

tl; dr (結論)

TWINTは、取得できるツイート数が少なくても良い場合は手軽な手段だが、ちゃんとした用途には使えない。

参考URL

注意点

参考URLによれば、正常にインストールされれば「twint」で実行できるということだったが、

# twint

Command 'twint' not found, did you mean:
(略)

見つからない、と言われてしまった。

findで見つけてフルパスで使用した。

# /root/.local/bin/twint -u [user_name] -o output.csv --csv

実行結果

出力フォーマットは以下のような感じ。

1507544121606xxxxxx 2022-03-26 11:25:02 +0900 <[user_name]> [tweet contents]
1507541604466xxxxxx 2022-03-26 11:15:01 +0900 <[user_name]> [tweet contents]
1507539094020xxxxxx 2022-03-26 11:05:03 +0900 <[user_name]> [tweet contents]

x は伏せ字(数字)。
csvを指定しているはずですが、カンマはなく、空白区切りのようです。

個人的にはAPIを使用した場合の現在の上限である3,200件の取得を期待したのですが……

アカウント1 …… 260件
アカウント2 ……  20件
アカウント3  …… 112件

という感じで、件数は不定で、かなり少ないようです。ツイート内容の長さや、期間などに関係なく、

[!] No more data! Scraping will stop now.
found 0 deleted tweets in this search.

という表示で終了します。
「No more data!」とありますがツイート自体は、どのアカウントもツイート数は1000以上はあります。
「found 0 deleted tweets」と出力がありますが、削除ツイートがあるアカウントでも0と表示されるので、実際に削除ツイートを反映している訳でもないようです。

感想

登録不要ですぐ使えるのは良いが、取れる件数が少なく、さらに不定数なので、ちゃんとツイートを取得したい場合には面倒でもデベロッパー登録をするか、Selenium系の取得を使う必要があるようです。

ネクスト・コナンズ・ヒント!

stweet というのが良いらしい、というヒントを得た。

ネクスト・参考URL!

【Twitterスクレイピング】twintの代わりにstweetをインストール

ネクスト・結末!

stweet、プロフィールは取れるけど、ツイートはほとんど取れず、使えませんでした!

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?