【裏技】無料でPythonからTwitterのいいね数などのエンゲージメントを取得

 

【悩み】
・Twitterのエンゲージメント取得(いいね数など)をPythonで自動化したい!
・できる限り無料でツイートごとのいいね数や表示回数を取得したい。
・TwitterのAPIを使えば良い?お金はかかるのだろうか?
・Twitterを運用しているが時間がない!どうにかして負担軽減できない?



こういった「悩み」に答えます。
 

【本記事の内容】
① そもそもTwitterのエンゲージメントとは?いいね数や表示回数のこと?
➁ Pythonで各ツイートのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を取得する方法2選
➂ 無料でPythonを使ってエンゲージメント取得するたった1つの方法
④ 手順:GUI自動化ツールを使ってPythonスクリプトを自作



本記事に掲載した手順を実践したことで、Twitter APIに課金することなくPythonからTwitterのツイートを検索し表示されたツイートのいいね数や表示回数などを取得できるようになりました(下の動画参照)。
 



記事の前半では「Pythonでツイートごとのいいね数などのエンゲージメント数を取得する方法」と「無料でPythonからTwitterのツイートごとのエンゲージメント数を取得できるのか?に対する調査結果」を解説します。

記事の後半では、「無料でPythonを使ってツイートごとのエンゲージメント数取得を実現する方法や具体的なプログラム」を説明します。
  

この記事を読み終えることで、「Twitter APIに課金することなくPythonからツイートごとのいいね数・リプライ数・リポスト数(リツイート数)・表示回数(インプレッション数、インプ数)・ブックマーク数を取得でき、各指標に対してソート・フィルタリング・平均値算出・最高値確認などができる」状態になります。
 

本ブログでは、Twitter APIなしでPythonから様々なTwitter操作を自動化する方法をご紹介しています。その他の操作自動化を知りたい方は、以下の記事をご覧ください。

>> 【実例8選】APIなしでPythonでのTwitter操作を実現する方法


 

そもそもTwitterのエンゲージメントとは?いいね数や表示回数のこと?


以下の順番で、Twitter(現X)のツイート(ポスト)ごとのエンゲージメント数取得に関してご紹介します。
 

【ご紹介事項】
・実演で理解!Twitterのエンゲージメント取得とは?
・なぜいいね数などのエンゲージメント数を取得したい?
 利用場面や利点は?
・自動化する際の注意点


 

実演で理解!Twitterのエンゲージメント取得とは?

まず、X(エックス)、旧Twitter(ツイッター)におけるエンゲージメントの定義ですが、「ツイートやアカウントに対するユーザーからの反応を数値化したもの」となります(下図参照)。
 



主なエンゲージメントとして、「いいね数・リプライ数・リポスト数・表示回数・ブックマーク数」があります(下図参照)。
 



すなわち、ここで記載したTwitterのエンゲージメント取得とは、「各ツイートのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を取得する」ことです。

例えば、Pythonを使うことで、以下の動画のように、自分自身でTwitterを操作することなく、ツイートごとのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を抽出できます。
 


 

なぜいいね数などのエンゲージメント数を取得したい?利用場面や利点は?

各ツイートのいいね数などのエンゲージメント数を取得することは、以下のように様々な場面で活用することができます。
 

利用場面詳細
影響力の評価ソーシャルメディアマーケティングやプロモーションの際、特定のツイートがどれだけの影響力を持っているかを評価するためにこれらの数値を確認します。例えば、多くのいいねやリツイートがあるツイートは、広く受け入れられている可能性が高いです。
コンテンツ戦略の最適化ツイートごとの反応を分析し、どの種類のコンテンツがフォロワーにより多くのエンゲージメントを生み出すかを理解し、コンテンツ戦略を最適化するために利用されます。
エンゲージメントの測定特定の期間内におけるエンゲージメントを測定し、フォロワーとの関係を強化するためのアクションを決定します。
広告キャンペーンの評価プロモーションや広告キャンペーンの成功を測定するために、広告ツイートのいいね数やリツイート数が重要な指標となります。
トレンド分析時間の経過とともにエンゲージメント数の変化を追跡し、特定のイベントやキャンペーンがどのように受け入れられているかを分析します。



また、ツイートごとのエンゲージメント数取得を自動化することの利点としては、以下が挙げられます。
 

利点詳細
効率向上手動でこれらのデータを収集するのは非常に時間がかかりますが、自動化することで効率が向上し、時間やリソースを節約できます。
リアルタイムの分析リアルタイムでエンゲージメントのデータを取得できるため、特定のキャンペーンやイベントの進行状況をリアルタイムで把握できます。これにより、素早い対応や調整が可能になります。
データの正確性人為的なミスや漏れ(ヒューマンエラー)が発生しにくくなります。自動化することで、ミスなく正確なデータを取得できます。
比較とトレンドの分析大量のデータを自動的に取得できるため、複数のツイートを比較したり、時間の経過とともに変化するトレンドを分析するのが容易になります。
傾向の発見大量のデータからパターンや傾向洞察を見つけるのが容易になり、これに基づいて戦略やコンテンツを改善することができます。



PythonでTwitterのエンゲージメント数取得の自動化を実現することで様々なメリットを得られます。そのため、本記事でご紹介する方法を把握することは損にはなりません。


 

自動化する際の注意点

注意点としては、「過度な自動化」です。API以外の方法で過度な自動操作を行った場合、アカウントが一時的にロックされたり凍結されたりする可能性があります(下図参照)。
 

出典:Twitterヘルプセンター

 

Twitterのエンゲージメント数取得を自動化することで様々なメリットを得られます。ただし、過度に実施するとアカウント凍結の恐れがあるので注意してください。


 

PythonでTwitterのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を取得する方法2選


PythonでTwitterのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を取得したい場合、本記事執筆時点では、以下の方法があります。それぞれの方法の概要を簡単にご紹介します。
 

【ご紹介事項】
・方法①:Twitterの有料API(Basic以上)を利用
・方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作


 

方法①:Twitterの有料API(Basic以上)を利用

Twitterには、「Twitter API」という仕組みがあり、この仕組みを使うことで、簡単にPythonなどのプログラミング言語からTwitterを操作できます。

Twitter APIには以下の4種類があり、Pythonから検索欄に表示された各ツイートのエンゲージメント数を取得したい場合、GET /2/tweets/search/recentのAPIを使う必要があるため、Basic以上の選択が必要です。

そのため、本記事執筆時点では、月に$100(約1万円弱)支払わなければ、Pythonから検索欄に表示された各ツイートのいいね数などの取得を実現できないです。
 

項目FreeBasicProEnterprise
料金無料$100/月$5000/月価格相談
できることTwitter API v2を使ったツイート作成や削除のみTwitter API v2の全機能Twitter API v2の全機能Twitter API v2の全機能
出典:Twitter APIについて(公式サイト)


各プランで操作可能な機能や単位時間当たりの制限回数などは、以下の公式サイトで確認できます。詳細を知りたい方は、以下をご覧ください。

>> Twitter API(Free)プランで使える機能と制限回数(公式サイト)

>> Twitter API(Basic)プランで使える機能と制限回数(公式サイト)

>> Twitter API(Pro)プランで使える機能と制限回数(公式サイト)

 

方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作

Pythonには、Webブラウザを操作できるライブラリがあります。以下のようなライブラリを使うことで、Pythonプログラム内で検索欄に表示された各ツイートのエンゲージメント数取得を自動で行えます。

ちなみに、冒頭でご紹介した動画では、PyAutoGUIを使って無料でエンゲージメント数取得を自動化しています。
 

【GUI自動化ライブラリの一覧】
・PyAutoGUI(詳しくはこちら
・selenium(詳しくはこちら



以上が、Twitterのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数を取得する方法となります。ご自身にあった方法を選択しましょう。
 

無料でPythonを使ってエンゲージメント取得するたった1つの方法


以下に関して順番に説明します。結論から言いますと、PythonからTwitterのエンゲージメント数を無料で取得したい場合、先ほどご紹介した「方法➁:GUI自動化ライブラリを使ってPythonスクリプトを自作」を採用するしかないです。
 

【ご紹介事項】
・そもそも有料ではダメな理由
・無料でいいね数などを取得できるPythonライブラリは存在する?


 

そもそも有料ではダメな理由

Twitter APIのBasic以上を使うことで、Pythonから各ツイートのエンゲージメント数を取得できます。ただし、月1万円程度の費用が発生します。

また、BasicとProの違いの一つとして、「単位時間あたりに発行できるAPI回数」があります。「APIを発行できる回数」としては、以下の違いがあります。
 

プラン発行できる回数(取得制限)
Basic15分で60回
Pro15分で450回
出典:ツイート取得のAPI(GET_2_tweets_search_recent)でのBasicとProの違い(公式サイト)



上記の表より、Basicを選択した場合、APIを発行できる回数が少ないため、実用化に障壁があります。また、APIを発行できる回数が多いProを選択した場合、月50万円程度の費用が発生します。

以上より、費用と回数の問題があるため、Twitter APIを使うことを躊躇する方が多いです。
 

無料でいいね数などを取得できるPythonライブラリは存在する?

Twitter APIの有料化が2023年3月に実施されました。さらに、簡単にスクレイピングできないようにjavascriptなどで画面表示を難解化し徹底したスクレイピング対策がされました。

それまでは、Pythonライブラリであるtweepyやbeautifulsoupによるスクレイピングで無料でツイート取得できていました。

ちなみに、以下のtweepyを使ったスクリプトを作成し実行することで、無料でツイートごとのエンゲージメント数を取得できました。
 

import tweepy

# Twitter APIの認証情報をセット(Twitter Developerで取得)
consumer_key = 'Your_Consumer_Key'
consumer_secret = 'Your_Consumer_Secret'
access_token = 'Your_Access_Token'
access_token_secret = 'Your_Access_Token_Secret'

# 認証情報を使ってAPIに接続
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

def get_tweet_metrics(tweet):
    # ツイートの詳細情報を取得
    full_tweet = api.get_status(tweet.id, tweet_mode='extended')

    # 必要な情報を抽出
    favorite_count = full_tweet.favorite_count
    reply_count = full_tweet.reply_count
    retweet_count = full_tweet.retweet_count

    return {
        'Favorite Count': favorite_count,
        'Reply Count': reply_count,
        'Retweet Count': retweet_count
    }

if __name__ == "__main__":
    search_query = input("検索クエリを入力してください: ")
    tweet_count = int(input("取得するツイート数を入力してください: "))

    # 検索クエリに基づいてツイートを取得
    tweets = api.search(q=search_query, count=tweet_count)

    # 各ツイートのエンゲージメントを表示
    for tweet in tweets:
        print(f"\nツイートID: {tweet.id}")
        metrics = get_tweet_metrics(tweet)
        for key, value in metrics.items():
            print(f"{key}: {value}")


Twitter Developerの登録手順に関しては、以下の記事をご覧ください。

>> 【コピペOK】PythonからTwitterへ自動投稿(ツイート)する手順
 

以上より、APIやスクレイピングなしでツイートごとのエンゲージメント数をPythonから無料で取得したい場合、先ほどご紹介した「方法➁」を採用するしかないです。
 

手順:GUI自動化ツールを使ってPythonスクリプトを自作


多くの人に公開することにより、Twitter社によって「方法➁」が禁止され、Pythonから無料でツイートごとのエンゲージメント数を取得する方法がなくなってしまう可能性があります。

大変申し訳ありませんが、方法➁の作り方は、本記事では非公開とさせてください。

どうしても作り方を知りたい方は、以下の有料記事のご購入を検討してください。有料記事には、「プログラムの流れ」「必要なツールやライブラリをインストール手順」「具体的なプログラム」を掲載しています。

>> PythonでTwitterのいいね数などのエンゲージメントを無料で取得する方法(Note)
 

上記Noteに掲載したプログラムの実行例は、以下となります。PythonからTwitterを操作でき、ツイートごとのいいね数・リプライ数・リポスト数・表示回数・ブックマーク数の取得も自動化できています。
 



上記のプログラムの詳細が気になる方は、以下からアクセスしてください。

>> PythonでTwitterのいいね数などのエンゲージメントを無料で取得する方法(Note)
  


 

【まとめ】Pythonから無料でエンゲージメント数の取得は可能!


いかがでしたでしょうか?

上記で紹介した方法を使うことで、Pythonから無料で各ツイートのエンゲージメント数を取得できます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・APIを使うとPythonからエンゲージメント数の取得が可能!ただし有料…
・Basicプランでは実用化に不向き、かといって、Proプランは高額である…
・GUI自動化ライブラリでPythonから無料でエンゲージメント数取得可能!



Pythonから無料でツイートごとのエンゲージメント数を取得し自動化するスクリプトを知りたい方は、以下にアクセスしてください。累計販売部数に応じて、価格を上げていくつもりなので、はやめのご購入をオススメします。

>> PythonでTwitterのいいね数などのエンゲージメントを無料で取得する方法(Note)
   


 

コメント