Python

【PythonでTwitterAPIを利用】ツイート情報を取得する。

こんにちは(@t_kun_kamakiri)(^^)

TwitterAPIを利用してTwitterのbotを作成しました。

botくんの運用方法としては「製造業ブロガー」の方々と共有でGoogleスプレッドシートに投稿内容をまとめPythonを使って定期的に自動でツイートしてもらうという仕組みを作りました。

本記事のシリーズではPythonでTwitterAPIを利用してGoogleスプレッドシートから自動投稿までの軌跡をまとめていきます。

こんな方ことがしてみたい方が対象

PythonでTwitterAPIを利用

さらに「Twitterの投稿内容のデータ分析」や「誰でも使える分析ツールの自作」までできればワクワクしてきませんかね(^^)

では、本記事の内容です。
まずはTwitterAPIを使ってツイート情報を取得するところからやりましょう。

本記事の内容

PythonでTwitterAPIを使って

  • TwitterAPIの申請
  • ツイート情報の取得

ここではPythonを使います。

Python3.7.6(Anaconda)

僕はデイトラPythonコースで勉強することで短期間で色々なことができるようになりました。↓こちらで学んだ内容をアレンジして記事を書いています(^^)

スポンサーリンク

Twitterの自動投稿ツールまとめ

実は、Twitterの自動投稿ツールには以下ツールがあります。

  • SocialDog
  • twittbot
  • AutoTweet
  • Hootsuite
  • Twit Delay
  • Botbird
  • Buffer

Twitterの自動投稿をしたいという目的だけならば、こちらに詳しく解説が書かれていますのでこちらをお読みください。

Twitterアカウントを作成

既にTwitterアカウントをお持ちの方はここの解説は飛ばして次に進んでいただいても構いません。

Twitterアカウント登録方法

 

認証を携帯で行った場合はPINコードというのが携帯のSMSに送られてくるかと思います。
別のアカウントでもTwitterAPIを使いたい場合はPINコードが必要になるのでメモして残しておきましょう。

Twitterの操作

Twitter操作をPythonで行うにあたってTwitter操作用のPythonライブラリを調べていたらかなり多くのライブラリが用意されていることがわかりました。

TwitterAPIの種類

  1. requests-oauthlib:PythonでOAuth認証を簡単に行うためのライブラリ。
    requests: HTTPライブラリ
    この2つを使う方法
  2. tweepy
  3. TwitterAPI
  4. python-twitter
  5. twint
  6. twython

あとはtwython-djangoというDjangoを使ったWebアプリ用のライブラリもあります。

twintに関してはTwitterAPIの申請をしなくてもツイート情報ができるようですね。
ただ、ツイート投稿となるとTwitterAPI申請を行わないといけないため、twintは今回は使用することはありません。

本記事のシリーズで使うライブラリは以下です。

使うライブラリ
  1. requests-oauthlib:PythonでOAuth認証を簡単に行うためのライブラリ。
    requests: HTTPライブラリ
    この2つを使う方法
  2. tweepy

TwitterAPIにはいくつか制限があるので確認しておきましょう。

API制限の確認

 

こちらに早見表があります。以下ちょっとまとめると・・・

代表的な操作を簡単にまとめたのが次の表です。
回数は、15分の間で許可されている回数です。※制限がかかってしまった場合は15間待ってください。

操作説明回数
ホームタイムラインフォローしてるユーザーたちのツイートを読み込む。15
ユーザータイムライン特定ユーザーのツイートを読み込む。180
フォローリストフォローしてるユーザー一覧を読み込む。15
フォロワーリストフォロワー一覧を読み込む。15
いいねいいねの一覧を読み込む。15
トレンドトレンドの一覧を読み込む。15
検索ツイートをキーワード検索する。180

回数については使用した感覚的にはあっているかなと思います。
要するにあまり派手に使わないようにってことです_(._.)_

さらにsearch/tweetsに関して検索できるのは1週間前のツイートまでです。

カマキリ

1週間前までしかツイート情報は取得できないのでデータ分析用に逐一取得していかないといけませんね。

TwitterAPIの申請

Twitterの自動投稿にはTwitterAPIを使用しますので申請を行う必要があります。

カマキリ

TwitterAPIって何って?

Twitter APIとは

ツイートやタイムラインの取得、リツイートやいいねといったTwitterのサービスを、公式のウェブサイトを経由せずに直接利用できるサービスです。

「API」とは、「Application Programming Interface」の頭文字です。

英文字だけで意味を理解しようとすると、アプリケーション・プログラミング・インターフェイスで、大雑把に言うと「アプリケーションをプログラミングするためのインターフェース」という意味です。

インターフェイスとは、コンピュータ用語でいうと、「何か」と「何か」をつなぐものという意味を持ちます。

要するにツイート情報を取得出来たり送ったりできたりするものってことでしょう(‘ω’)?

Twitterにログインした状態で、Deeloperサイトへアクセスします。

TwitterAPIの申請方法は既にネットにわかりやすい解説記事がありますので「TwitterAPI申請方法」などと検索して探してみてください。
こちらにTwitterAPI申請方法のわかりやすい解説記事を参考で貼っておきます。

参考記事はこちら

ちなみに申請は英語で行います。

Aさん

おい!英語か!何に書いてるかわからない( ゚Д゚)

そんな方のためにお勧めなのがDeepLです。
Google翻訳よりはかなり良い精度で翻訳してくれます。

DeepLはこちら

申請して不備がある場合はメールが飛んできますが、丁寧に返答をしていけばいずれ申請されますので英語でメールが来てもビビらずに返答していきましょう(^^)/

こちらはあくまで返答の例ですが、もっと詳しく書いてもOKです。
相手に対してどうしてTwitterAPIを使うのかという目的をしっかり伝えることが大事です。
向こうの立場で考えればTwitterAPIを使って悪用されたら困るのでしっかりと目的を聞いているということなんです。

TwitterAPI取得後

TwitterAPIが取得出来たら早速使ってみましょう。

こちらを参考

では、TwitterAPIが取得出来たらPythonでTwitterの操作を練習でしてみましょう。

  • ツイートの取得
  • データをまとめる

基本的なことがわかれば後は応用をするだけです。

Twitter上のツイート情報の取得

本記事のメインの話は、Pythonを使ってTwitter上のツイート情報の取得(TwitterAPIを使用)ですが、ツイート情報はブラウザからダウンロードすることもできますので紹介しておきます。

Twitter画面からダウンロード

インプレッション数、エンゲージメント数も取得したいですよね。
でも、インプレッション数、エンゲージメント数をチェックするにはエンタープライズ版のEngagement APIを利用する必要があるので今回は諦めました。

しかし、Twitterの画面からcsvファイルでデータ取得ができるので、ダウンロードしてデータ分析することはできます。

データの取得方法は以下の画像の手順です。

csvファイルをダウンロードしたら以下のPythonコードでcsvファイルを読み込み、データ分析を進めていけばよいです。
※今回はcsvファイルを読み込むところまでしか行っていません。

 

【実行結果】

このようにデータを取得できれば分析をすることができます。

Pythonを使ってTwitter上のツイート情報の取得(TwitterAPIを使用)

では、さっそくTwitterAPIを使っていくのですがここでの目標は以下となります。

目標

特定のアカウントから5つのツイートを取得し、

  • 投稿内容
  • いいね数
  • RT数

を表にまとめる。

では早速やっていきましょう。

ひとつひとつの動作がわかるようにjupyter labで行ったものを記載しておきます。
解説も載せておきますのでご参考ください。

全体のコードは最後に記載しています。

.envファイルを用意

Pythonコードを書く前に準備が必要です。

Twitterにログインした状態で、Deeloperサイトへアクセスします。

  • コンシューマーキー (API key)
  • コンシューマーシークレーット(API secret key)
  • アクセストークン(Access token)
  • アクセストークンシークレット(Access token secret)

をメモしておきます。

Pythonのコード内で認識させる必要があるのですが、コード内に直接べた書きするとセキュリティ的に良くないので、「.env」ファイルから読み込むようにします。

「.ipynb」と同じフォルダ内に「.env」ファイルを作成します。

これで認証用のキーの設定を読み込める準備ができました。

jupyter labで動作確認

動作確認は下記のようにjupyter labで行っています。
一緒にコードを書いて理解をしましょう。コードが理解できたら最後に全体のコードをまとめる流れです。

ここではrequests-oauthlibを使っています。

必要なライブラリは事前にターミナルでインストールしておきましょう。

AnacondaのPythonを使っている場合はpipコマンドで外部ライブラリをインストールするとファイルがぐちゃぐちゃになって壊れてしまう可能性があるため「conda insall ライブラリ名」とGoogle検索してインストール方法を調べてください。
今回必要、Anacondaでインストールされていないライブラリは以下なのでインストールしておきます。

また、モジュールのimportでエラーがでたら上記のように適宜インストールをしてください_(._.)_

 

全体のコード

こちらが全体のコードとなります。
以下のコードでツイート投稿内容、いいね数、RT数が取得でき表にまとめることができます。

【全体のコード】

【結果】

かなり丁寧に解説をしたので、説明が冗長だと感じた方は全体のコードを使ってください。

まとめ

PythonでTwitterAPIを利用してツイート情報を取得してみました。

次回の記事はこちら

Pythonの理解にはこちらの参考書で勉強しています。

独習Python

独習Python

山田 祥寛
2,970円(08/06 01:03時点)
発売日: 2020/06/22
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。