Twitterをスクレイピングしてもっとも古いぴえんツイートを見付ける


![スクリーンショット 2020-07-14 3.47.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/e820bb44-42a3-75f6-1bb6-5e9e6ea485a0.png)


Twitterをスクレイピングして過去のツイートを取得できる [twitterscraper-ruby gem](https://github.com/ts-3156/twitterscraper-ruby) を作成しました。

このtwitterscraper-ruby gemを使えば「もっとも古いツイート」や「ある単語をツイートした最初の人」を簡単に見付けることができます。

## 告知

SNSデータを用いた分析、Ruby on Railsを用いたWeb開発について、ご依頼やご相談は [@ts_3156](https://twitter.com/ts_3156) までお気軽にご連絡ください。





## なぜいまさらスクレイピングなのか

ツイートを大量に取得する方法は、大別するとTwitter Search API（無料版）、Twitter Search API（有料版）、Twitterのスクレイピングの3通りがあります。

### Twitter Search API（無料版）

おそらく世の中の99%の方はこの方法を使ってツイートを取得しています。ツイッターが提供しているAPIなので安心して利用できる一方、利用回数に強力な制限があり、また、最大のデメリットとして「直近の7日間のツイート」しか取得できません。このため、「最近のツイートを少しだけ取得する」ことしかできません。

### Twitter Search API（有料版）

このAPIを使うと、`月々あたり数百万円`ほど支払うことで、過去の全てのツイートを検索することができるようになります。利用回数に制限はありますが、比較的緩やかな制限でありツイートの取得という意味では不自由することはなくなります。

※有料のAPIには様々な種類があり、正確な名称は異なります

### Twitterのスクレイピング

twitterscraper-ruby gemが利用している方法です。Twitter Search APIのデメリットである利用回数の制限や対象期間の制限を気にすることなく、高速に大量のツイートを取得することができます。ただし、スクレイピングは**利用規約で明確に禁止されている行為であり、完全に自己責任で行う**必要があります。

この記事では、できるだけツイッターに負荷をかけない方法でいくつかの調査を行っています。






## 「ぴえん」をツイートした最初の人を調べる

最近流行っている「ぴえん」を最初にツイートした人を調べてみました。意外に歴史は古く、2008年5月22日の時点で現在のぴえんとほぼ同じ意味で使った人が見つかりました。

[最初にツイートされた「ぴえん」のURLはこちら](https://twitter.com/asami81/status/817087907)

<img width="608" alt="スクリーンショット 2020-07-14 3.15.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/b106d21b-ffb8-8637-9aad-49556e4acadd.png">

twitterscraper-rubyをインストール後に下記のコマンドを実行すれば、最初の「ぴえん」ツイートを取得することができます。

```shell
$ twitterscraper --query 'ぴえん' --start_date 2008-03-21 --end_date 2009-03-21 --lang ja --limit 10 --proxy --threads 10
```

[ぴえんローの元ツイートURLはこちら](https://twitter.com/eq_/status/635371852)

ちなみに、現在のぴえんと違う意味であれば、もっとも古いぴえんは2008年1月24日にツイートされています。ぴえんロー（ピェンロー鍋）やぴえん粥（ヤーピエンジョウ）という食べ物があり、この意味でのツイートでした。

<img width="610" alt="スクリーンショット 2020-07-14 3.24.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/c8ac1b1e-15c0-d753-3cb7-f04509eba8a4.png">


[ぴえん粥の元ツイートURLはこちら](https://twitter.com/iszk/status/741713302)


<img width="608" alt="スクリーンショット 2020-07-14 3.25.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/e5f9f2f8-9751-aefd-44de-e153dddbf72f.png">








## 年号として「令和」をツイートした最初の人を調べる

この予言ツイートのことは、2019年の春頃にネットでとてつもなくバズっていたので知っている方も多いと思います。

平成の次の年号として「令和」が最初にツイートされたのは「2016年7月13日」です。twitterscraper gemを使えばこのツイートを簡単に見付けることができます。

[令和予言ツイートのURLはこちら](https://twitter.com/syaaaan_/status/753177564164653056)

![令和予言ツイートのスクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/8edcbb06-124d-35e1-fd83-8b9b0104ccbc.png)

twitterscraper-rubyをインストール後に下記のコマンドを実行すれば、令和予言ツイートを取得することができます。


```shell
$ twitterscraper --query '令和' --start_date 2016-07-13 --end_date 2016-07-14 --limit 10
```

ちなみに、「年号としての令和」ではなく「ただの文字列としての令和」であれば、もっと前にツイートしている人はたくさんいます。中国語で偶然同じ並びになることがあるようです。

[たまたま令和と書かれたツイートのURLはこちら](https://twitter.com/Msyysyys/status/753186879038590976)

<img width="612" alt="スクリーンショット 2020-07-14 1.52.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/a99f527e-8e28-be82-5044-5077c67e35f8.png">


## 取得できる中でもっとも古いツイートを見付ける

公式のTwitter Searchであれば、最大で「2006-03-21」まで遡ってツイートを取得することができます。

試しに、もっとも古いツイートを取得してみました。その結果、2006年3月22日の`just setting up my twttr`がもっとも古いツイートであることが判明しました。

[もっとも古いツイートのURLはこちら](https://twitter.com/jack/status/20)

<img width="608" alt="スクリーンショット 2020-07-14 2.41.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33011/0760e89f-989f-c961-2785-e560fe44c24d.png">

twitterscraper-rubyをインストール後に下記のコマンドを実行すれば、もっとも古いツイートを取得することができます。

```shell
twitterscraper --query 'just' --start_date 2006-03-21 --end_date 2006-03-22 --limit 10
```


## 告知

SNSデータを用いた分析、Ruby on Railsを用いたWeb開発について、ご依頼やご相談は [@ts_3156](https://twitter.com/ts_3156) までお気軽にご連絡ください。


## 参考リンク

https://github.com/ts-3156/twitterscraper-ruby