Twitter Scraper でTweetAPIを使わずにツイートを収集

[Twitter Scraper]TwitterAPI不要ツイート集める方法

こんばんは、エンジニアの眠れない夜です。

ツイートを集めてデータ解析をしたり機械学習の素材集めに利用したい!!

と、思っている方は多いのではないでしょうか?

しかし、TwitterAPIの規制が厳しくなったり、わざわざAPIを取得するのが面倒…

という方におすすめしたいのが Twitter Scraper です。

Twitter Scraper を使うとツイートをTwitterAPI無しで簡単に集めることができるようになります。

APIが不要なので準備も不要!ということで、今回もまたGoogleColaboでサクッと実行してみましょう!

Twitter Scraper を使ってみる

twitter-scraper を使ってTwitterAPIを使わずにTweetの取得を行います。

まずはTwitter Scraperのインストールを行います。

!pip install twitter-scraper

インストールができたのでTwitterから情報を取得してみましょう。

Python
from twitter_scraper import get_tweets
for tweet in get_tweets('TwitterBizJP', pages=1):
    print(tweet)

get_tweets(アカウントID,ページ数) を引数に実行すればツイートがリストで返ってきます。

※ アカウントIDは@以下の英数字です。

後はそれを1つずつ取り出してみます。

tweetはディクショナリ型なのでtweet['text'] ,tweet['time']のようにキーを指定すると欲しい情報だけを取り出せます。

1ページあたり20件のツイートが返ってきます。そのうちの5件を抜粋しました。

– – 0 – –
{‘tweetId’: ‘1145527444343906304’, ‘time’: datetime.datetime(2019, 7, 1, 3, 0), ‘text’: ‘7月は #梅雨明け #夏休み などでツイート量、検索量が増えていきます。気軽に会話に繋がりやすいのでぜひビジネスのツイートにも取り入れてみてください。Twitterで話題になりやすいトピックをまとめたカレンダーはこちらからダウンロードいただけます #Twitter運用Tips https://cards.twitter.com/cards/18ce53xjseg/78qjexa0…’, ‘replies’: 1, ‘retweets’: 19, ‘likes’: 52, ‘entries’: {‘hashtags’: [‘#梅雨明け’, ‘#夏休み’, ‘#Twitter運用Tips’], ‘urls’: [], ‘photos’: [], ‘videos’: []}}
– – 1 – –
{‘tweetId’: ‘1158241219903807488’, ‘time’: datetime.datetime(2019, 8, 5, 5, 0), ‘text’: ‘オートプロモートのレポートは、PCやモバイルのブラウザからご確認頂けます。こちらをクリック #オートプロモート https://cards.twitter.com/cards/18ce53xjseg/5en9lxa0…’, ‘replies’: 0, ‘retweets’: 0, ‘likes’: 10, ‘entries’: {‘hashtags’: [‘#オートプロモート’], ‘urls’: [], ‘photos’: [], ‘videos’: []}}
– – 2 – –
{‘tweetId’: ‘1158211019719659520’, ‘time’: datetime.datetime(2019, 8, 5, 3, 0), ‘text’: ‘Twitter広告は都道府県別の配信が行えます。例えば「大阪特化型グルメポータルのフォロワー」かつ「北海道限定」で広告配信すると、その広告が届くのは「いま北海道にいるグルメが好きな大阪在住の方」です。 #Twitter運用Tipspic.twitter.com/zhXAPzt6he’, ‘replies’: 0, ‘retweets’: 0, ‘likes’: 9, ‘entries’: {‘hashtags’: [‘#Twitter運用Tips’], ‘urls’: [], ‘photos’: [‘https://pbs.twimg.com/media/EA8sKKnVAAASp2U.jpg’], ‘videos’: []}}
– – 3 – –
{‘tweetId’: ‘1158180821536088064’, ‘time’: datetime.datetime(2019, 8, 5, 1, 0), ‘text’: ‘広告の効果が落ちたときnnターゲティングや入札額の変更の前に「クリエイティブの変更」をご検討ください。クリエイティブ改善が最も有効なケースが多いです。 #Twitter広告サポート’, ‘replies’: 0, ‘retweets’: 1, ‘likes’: 12, ‘entries’: {‘hashtags’: [‘#Twitter広告サポート’], ‘urls’: [], ‘photos’: [], ‘videos’: []}}
– – 4 – –
{‘tweetId’: ‘1157184254775709696’, ‘time’: datetime.datetime(2019, 8, 2, 7, 0), ‘text’: ‘クレジットカードで広告を配信する際の上限額をあらかじめ引き上げておくにはこちらのお問い合わせより申請ください。金額によって5営業日ほどかかる場合がございます。#Twitter広告サポート https://cards.twitter.com/cards/18ce53xjseg/6u8x7xa0…’, ‘replies’: 0, ‘retweets’: 1, ‘likes’: 6, ‘entries’: {‘hashtags’: [‘#Twitter広告サポート’], ‘urls’: [], ‘photos’: [], ‘videos’: []}}
– – 5 – –
{‘tweetId’: ‘1157169154215952384’, ‘time’: datetime.datetime(2019, 8, 2, 6, 0), ‘text’: ‘クレジットカードでTwitter広告をご利用される際の請求に関する基本ルールはこちらです。 #Twitter広告サポート https://cards.twitter.com/cards/18ce53xjseg/7gpd3xa0…’, ‘replies’: 0, ‘retweets’: 0, ‘likes’: 7, ‘entries’: {‘hashtags’: [], ‘urls’: [], ‘photos’: [], ‘videos’: []}}
– – 6 – –

1つのツイートの中に入っているものを見てみるとIDや時間、リプライ、リツイートなど色んな情報が入っています。

‘tweetId’: ‘1145527444343906304’
‘time’: datetime.datetime(2019, 7, 1, 3, 0)
‘text’: ‘7月は #梅雨明け #夏休み などでツイート量、検索量が増えていきます。気軽に会話に繋がりやすいのでぜひビジネスのツイートにも取り入れてみてください。Twitterで話題になりやすいトピックをまとめたカレンダーはこちらからダウンロードいただけます #Twitter運用Tips https://cards.twitter.com/cards/18ce53xjseg/78qjexa0…’
‘replies’: 1
‘retweets’: 19
‘likes’: 52
‘entries’: {‘hashtags’: [‘#梅雨明け’, ‘#夏休み’, ‘#Twitter運用Tips’] ‘urls’: [] ‘photos’: [] ‘videos’

get_tweets('TwitterBizJP', pages=1):のページ番号を増やすと最大何件取得ができるのか試してみたところ約815件で私はエラーが出ました。

このあたりがTwitter Scraperの限界ですかね…?

Twitterアカウントのフォロワー数、プロフィールなどの取得

twitter-scraperをインストールしたときに使えるのはget_tweetsだけです。

2019年8月4日の時点でドキュメントを見てもget_tweetsの紹介しかされていません。

しかし、twitter_scraper.pyにはread_profile()という関数があるのを発見しました。

試しに、ソースコードをそのままコピペしてみたところread_profile()が使えました!

※ 2019年8月19日現在read_profile()は無くなっていました。最後にGoogleColabへのリンクがあるのでそこからソースすをコピペして使ってください。

取得できた情報は

  • アカウント名
  • 誕生日
  • 場所
  • プロフィール
  • フォロー数
  • フォロワー数
  • お気に入り
  • ツイート数
  • プロフィール画像URL

です。

Python
read_profile('TwitterBizJP')

{‘bio’: (‘Twitterをビジネスの集客や宣伝で使う方向けに、Twitterの最新情報や運用のTipsを発信しています。#ビジネスTwitter Twitter広告に関するお問い合わへお寄せください(DMやツイートではお答えしておりません。ご了承ください。)’,
[‘/hashtag/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9Twitter?src=hash’,
‘https://t.co/I7fOzqj43X’]),
‘birthday’: None,
‘full_name’: ‘Twitterビジネス’,
‘location’: ‘Japan’,
‘num-followers’: 118552,
‘num-following’: 26,
‘num-likes’: 310,
‘num-tweets’: 2819,
‘profile-url’: ‘https://pbs.twimg.com/profile_images/875169998037176320/42SwzzjL_400x400.jpg’}

まとめ

今回はTwitter Scraper の紹介でした。

ツイートを一瞬で集めることができるようになるのでとても便利ですね!

できること

  • TwitterIDからツイートを約800件を一瞬で取得できる。
  • ツイートをした時間、リツイート数、お気に入り、画像などが取得できる。
  • Twitterアカウントのフォロー数・フォロワー数・お気に入り・プロフィールなどを取得できる。

できないこと

  • リツイート数、お気に入りなどをしたアカウントの取得はできない。
  • フォロー、フォローバックをしているアカウントの取得はできない。

以前はツイートの本文だけしか取れないと思っていたのですが、ツイートの時間やプロフィール情報が取得できることがわかってかなりTwitter Scraperの利用の幅広がりそうです!Twitterを使ったデータ分析をするにはかなりおすすめのツールです!

今回のファイルは twitter_scraper_001 に置いてあります。

read_profile()の使い方の説明もざっくりしているので上記のColabファイルを参考にしてください。

ぜひ皆さんもいろんなツイートを集めてデータ分析に役立ててみてください^^​

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください