Python
Twitter
スクレイピング

あまり教えたくないCLIツール: Twitter Scraper

Twitterからのデータ収集は通常、APIが用いられますが、APIにはいくつかの利用制限があることはご存知かと思います。この利用制限を回避できる便利ツールTwitter Scraperを紹介します。


Twitter Scraperの特徴


  1. Webから直にとってくるのでAPI登録する必要がない。

  2. 利用制限がない。

  3. 公開されているツイートなら、いかなる時間のツイートも収集できる。

  4. 並列アクセスによる高速化可能。

  5. CLIで簡単に使える。


インストール

pip install twitterscraper


実行例

$ twitterscraper "#MeToo near:Seattle" --limit 100 --poolsize 100 --begindate 2018-01-01 --enddate 2018-08-01 -o tweets.json

収集されたデータの一部

[{

"fullname": "Town Hall Seattle",
"html": (略),
"id": "967540861700661248",
"likes": "1", "replies": "0", "retweets": "0",
"text": "While this is not quite #MeToo material, I was told by multiple people that the Seattle\u2026 https://www.instagram.com/p/BfmQfyKluGA/\u00a0",
"timestamp": "2018-02-24T23:24:52",
"url": "/hotdogjudge/status/967540861700661248",
"user": "hotdogjudge"},
...]


説明

コマンドを見れば大体わかります。検索クエリはTwitterの仕様どおりです。

以下のオプションは省略できます。

--limit 収集数

--poolsize 並列アクセス数

--begindate 取得日の始点

--enddate 取得日の終点

-o ファイル出力

他のオプションもありますが、それについては以下のページを見てください。

https://github.com/taspinar/twitterscraper

まあ、やりすぎればTwitterからブロックされるかもしれません。


参考

[0] https://github.com/taspinar/twitterscraper


追記


2018/08/23 18:17

ScrapyやPortiaを使ったり、Googleから検索結果をスクレイピングしたりと、最近の仕事はスクレイピングが多いです。


2018/08/23 18:54

これぐらいシンプルなスクレイピングツールなら自分でも書けてしまいそうですが、「車輪の再発明は悪!」という古くからの言い伝えを信じましょう。機能追加したければ、githubでフォークして改造しちゃえばいいんです。


2018/08/23 19:18

ちなみに「教えたくない」の意味は、「こういうツールを沢山の人がつかっちゃうと、Twitterが対策強化してくるから教えたくない」という意味です。