X（旧 Twitter）からデータをスクレイピング・取得する方法

本記事では、Xからポストデータをスクレイピング・取得する方法を紹介します。

ここで紹介する方法は無料で活用できる上に、かんたんな操作だけでデータ抽出が可能なので、作業時間の短縮や業務生産性の効率化につながります。Xのポストデータを上手に活用して、自社のマーケティング活動の精度を高めましょう。

## Xデータの主な活用方法

Xには膨大なデータ（プロフィール、ハッシュタグ、タイムライン、投稿情報など）が存在し、これらを活用することでビジネスに多大な価値をもたらします。



1. **ブランドモニタリング**：
特定のキーワードやハッシュタグを追跡し、ブランドへの印象や反応をリアルタイムで把握。「＜サービス名＞ 使えない」などの検索で問題を早期発見できる。

2. **予測分析**：
過去の投稿パターンから商品需要を予測。「栗」「秋刀魚」などの季節キーワードの出現時期を分析し、発売計画に活用。

3. **競合分析**：
競合他社のアカウントやキャンペーンを監視し、市場での位置づけを把握して戦略立案に活用。

4. **センチメント分析**：
NLP技術を用いて投稿内容からユーザー感情（ポジティブ・ネガティブ・中立）を分析し、製品やサービスへの反応を評価。

5. **機械学習モデル構築**：
自然言語処理や感情分析のモデルトレーニングに現実の投稿データを活用し精度向上。

6. **業界動向把握**：
業界関連キーワードをモニタリングし、新技術や最新トレンドをいち早く捉え、競争優位性を確立。

7. **市場調査**：
リアルタイムの消費者の声を収集し、地域別・時間別の詳細な市場分析が可能。従来のアンケート調査より迅速かつ正確。

8. **マーケティング最適化**：
投稿形式の効果比較やインフルエンサー特定など、エンゲージメント向上策を分析。

9. **製品イノベーション**：
ユーザーフィードバックから新製品アイデアや改善点を発見し、開発に活用。

10. **研究活用**：
社会科学やコンピューターサイエンスの研究データとして活用。パンデミック時の意識調査などにも使用。

ターゲット層のフォロー傾向や興味関心の高い投稿、トレンドワードを分析することで、ユーザーニーズをより深く理解できるようになります。

## X（Twitter）からデータをスクレイピング・取得する方法

Xからデータを抽出する方法は以下の3つが挙げられます。

1. Webスクレイピングツールを利用する
2. X APIを利用する
3. オープンソースのスクレイピングパッケージを利用する

### Webスクレイピングツールを利用する

Webスクレイピングツールとは、Webサイト内の情報を自動で抽出するソフトウェアサービスのことです。一般的にWebスクレイピングを行うためには、Pythonなどのプログラミングが必要です。

しかし、Webスクレイピングツールを利用すれば、プログラミングを行わずとも、かんたんなクリック操作だけでスクレイピングタスクを実行できます。Xのポストデータをスクレイピングする際に最も効率的な方法といえるでしょう。

### X APIを利用する

XではAPIを提供しています。X APIとは、公式のWebサイトを経由せずとも、Xのサービスを利用できるようになる機能で、様々なツールと連携できます。例えば、Pythonを使ってポストの自動投稿や、特定の人物のポストを自動取得することが可能です。X APIを利用するには、Xにログインした状態で「X Developer Platform」にアクセスし、利用申請を行います。申請後、審査に問題がなければAPIが利用できるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/51921a6b-c05f-48e8-b24d-2e00f88c9bef.png)

主な機能と料金は、次のとおりです。

| プラン | 月額料金 | 月間投稿上限（ユーザーあたり） | 月間投稿取得上限（エンドポイントによる） | App数 | 主な機能 |
|---|---|---|---|---|---|
| Free | 無料 | 500件 | 100件 | 1 | 基本的なAPIアクセス、投稿・削除機能、ログイン機能、広告APIアクセス |
| Basic | ＄200/月 | 3,000件（Appあたり50,000件） | 15,000件 | 2 | 拡張APIアクセス（アカウントデータの取得）、リアルタイムデータ取得、広告API、リストやDMの管理 |
| Pro | $5,000/月 | Appあたり300,000件 | 1,000,000件 | 3 | さらなる拡張APIアクセス、大量データ取得、フィルタリングストリーム |
| Enterprise | カスタム | 制限なし | 制限なし | カスタム | 完全なAPIアクセス、カスタム機能とサポート |

※2024年11月より料金体系の変更がありました。（Upcoming updates to the Self Serve X API）

Freeプランの場合、自身のフォロワーリストなどは得られますが、他人のポストやフォロワー情報などは取得できません。他人のポストやリポスト・いいね等の情報を取得するにはBasic以上のプラン加入が必要です。

さらに、APIを使ってデータ取得を自動化するには、Pythonなどのプログラミング知識が欠かせません。

例えば、Pythonで「おはようございます！」とポストする場合は以下のように記述します。

（実行環境：AWS Lambda Python3.9）

```python
import os
from requests_oauthlib import OAuth1Session

# API Key, Access Token
consumer_key = os.environ['CONSUMER_KEY']
client_secret = os.environ['CLIENT_SECRET']
access_token = os.environ['ACCESS_TOKEN']
access_token_secret = os.environ['ACCESS_TOKEN_SECRET']

# OAuth setup for Twitter
oauth = OAuth1Session(consumer_key, client_secret, access_token, access_token_secret)

def lambda_handler(event, context):
    # 投稿するメッセージ
    text = "おはようございます！"

    # Twitter APIへ投稿
    payload = {'text': text}
    oauth.post(
        "https://api.twitter.com/2/tweets",
        json=payload,
    )
```

これに加えて、自動起動・メッセージやリストのカスタマイズが必要です。プログラミングの知識がない方にとってはハードルが高いといえるでしょう。

また、X APIでは利用規約があるため、規約範囲内でしか利用できないことも注意が必要です。例えば、スパムやボットによる大量投稿を防ぐため、連続で同じ内容のポストができない「重複コンテンツポリシー」が適用されます。

規約に違反した場合、API制限としてポストや読み込みが一定時間利用できなくなります。開発者は利用ルールを十分に理解し、責任を持って利用する必要があります。

### オープンソースのスクレイピングパッケージを利用する

オープンソースとは、誰でも利用・編集できるように無償で公開されたソースコードのことです。オープンソースのスクレイピングパッケージを使えば、無料でスクレイピングを行うことができます。しかし、スクレイピングプログラムを構築するには、プログラミングスキルを習得しなければなりません。

また、オープンソースは非営利団体・コミュニティが管理しているため、アップデートやバグ修正（バグフィックス）の即時性を保証されないというデメリットもあります。他にも、プログラムがインターネット上に公開されているため、ハッカーなど悪意のある第3者から狙われやすく、不正アクセスやアカウントの乗っ取りなどのリスクが高まります。

## 初心者がX（Twitter）データをスクレイピングするならWebスクレイピングツールが最適

ここまで解説した通り、初心者がXのデータをスクレイピングする際は、Webスクレイピングツールの活用がおすすめです。他の方法に比べ、手軽でかんたんな操作だけでデータ取得が可能なので、時間とコストを大幅に節約できます。

数あるWebスクレイピングツールの中でも「[Octoparse](https://www.octoparse.jp/)」では、コードを書かずにかんたんな設定・操作だけで、データ抽出の自動化が実現可能です。わずか10分程で、何千ものポストデータを抽出できます。さらに、データ抽出スピードが速いだけではなく、無料から使えるなど導入費用の安さも魅力です。

![Octoparseサイト画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/f0f8af34-d6b2-4445-a60e-8c38443758b8.png)

個人での利用であれば、無料プランでも十分に活用できます。一方企業が膨大な量のデータ抽出を求める場合は、有料プランがおすすめ。Octoparseを利用する際は、予算と要件に応じて、適切なプランを選択しましょう。

## Octoparseでポストデータをスクレイピングする方法

Octoparseでは、数多くのWebサイトのデータ抽出テンプレートが用意されています。データを抽出したい対象サイトのテンプレートをチェックするだけで利用が可能です。ここでは、テンプレートの使い方について解説します。

### ステップ1

お使いにOS（Windows、Mac）に合わせてOctoparseの最新バージョンをダウンロードし、ログインします。

起動すると次のような画面が表示されますので、検索窓に「Twitter」と入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/8d462312-adf3-4f79-8e97-a7df1c8702bd.png)

### ステップ2

X（Twitter）関連のテンプレートが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/4bb9253d-bf8d-4108-849c-06e63730edfc.png)

### ステップ3

Xのテンプレートはいくつか存在しますが、それぞれ抽出できるデータが異なります。

それぞれの違いは次の表を参考にしてください。

| テンプレート名 | 機能 |
|---|---|
| Get Twitter Cookies | ユーザー名(ニックネームやアカウントのメールアドレスではない)とパスワードを入力すると、クッキーが取得できます。 |
| Twitter Scraper (by Account URL) | X（Twitter）のアカウントページから、各ポストの投稿ID、投稿内容、投稿日時など詳細情報を抽出します。 |
| Twitter Scraper (by Search Result URL) | X（Twitter）のページから、各ポストの投稿内容、投稿日時などの情報を抽出します。 |
| Tweets & Comments Scraper (by Search Result URL) | キーワードから最新のポスト、トップポストなどのデータを抽出します。 |
| Twitter Scraper (by hashtag) | トップポストから「いいね数」「リポスト数」「返信数」などのデータを抽出します。 |
| Twitter Scraper (by Keywords) | 任意の期間において特定のキーワードでポストされた情報を抽出します。 |
| Twitter Auteur Scraper | キーワードから作成者に関する情報（コンテンツ、コメントなど）を抽出します。 |

### ステップ4

ポストデータの取得を開始する前に、まずは「Get Twitter Cookies」のテンプレートを使用して、クッキーを取得する必要があります。

ユーザー名(ニックネームやアカウントのメールアドレスではない)とパスワードを入力すると、クッキーが取得できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/7f3be998-2f26-457e-b7c6-dadc36614426.png)

Octoparseでスクレイピングする際は、ユーザーのプライバシーデータを保存しませんので、ご安心ください。

ステップ1：Xのユーザー名とパスワードを入力してください。例えば、あなたがElon Muskの場合は、Elon Muskではなく@elonmuskと入力してください。  
ステップ2：保存＞実行をクリックし、「クラウド収集」または「ローカル収集」を選択します。するとクッキー情報を取得できます。

### ステップ5

続いて、「Twitter Scraper（by Account URL）」テンプレートを使って、Octoparse Japanのポストデータをスクレイピングします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/95459dd5-c402-4af1-aba7-730329a1953c.png)

TwitterのアカウントURLから、ツイート内容、時間、ユーザー名、リプライ数、リツイート数、いいね数、閲覧数などをスクレイピングする。

テンプレートを選択したら、TwitterアカウントのURLを入力します。入力したら、実行ボタンをクリックしましょう。

### ステップ6

タスク実行方法を選択する画面になりますので、「ローカル抽出」か「クラウド抽出」のいずれかを選択します。データ量が少なければローカル抽出で問題ありません。クラウド抽出の場合はスピードが最大20倍にアップしますが、有料プランの契約が必要となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262932/88418524-85fd-4d20-8179-0059c8ec77a8.png)

タスクを実行するとデータ抽出が開始されます。全てのデータが抽出されるまでに、数分程度掛かりますので、完了まで少し待ちましょう。

抽出したデータは、外部ファイルにエクスポートできます。エクスポート先はExcel、CSV、HTML、JSON、その他データベースのいずれかから選択可能ですので、活用方法に合わせて選択しましょう。

例えば、Excelにエクスポートした場合、グラフやピボットテーブルを作成するなど、データの見える化が可能です。Excelの便利な活用方法を知りたい方はこちらの記事を参考にしてください。


## 合法性と倫理的な利用規約

スクレイピング自体は違法ではありませんが、適切に行わないと法的リスクがあります。

### 注意すべき点

- **著作権の遵守**: 著作権保護コンテンツの無断収集・再配布は違法  
- **プライバシー保護**: 個人情報の無断収集はプライバシー侵害となる  
- **利用規約の遵守**: サイト固有の規約に従う必要がある  

### X (Twitter) の場合

X (Twitter) のサービス利用規約では、APIを通じたデータ収集は許可されていますが、それ以外の方法（スクレイピング）は明確に禁止されています。

#### 規約引用:

> 「当社の現在利用可能な公開インターフェース以外の方法での、本サービスへのアクセスは禁止」  
> 「クローリングまたはスクレイピングを、当社による事前の書面での同意がないまま行うことは明示的に禁止」  

### スクレイピング実施時の注意点

- 短時間での大量アクセスを避ける  
- 個人的な使用範囲に限定する  
- サイト規約を必ず確認し遵守する  

適切な方法でデータを収集するためには、各サイトの利用規約を事前に確認することが重要です。

## まとめ

今回は、数あるSNS（ソーシャルネットワーキングサービス）中でも、特に利用者数が多い、X（Twitter）のデータをスクレイピング・取得する方法を紹介しました。

Xのポストデータを活用すれば、ブランドのモニタリング、競合他社の監視、MLモデルのトレーニング、新製品の開発など、あらゆる場面で役立ちます。

XではAPIも提供していますが、初心者にはやや扱いが難しいため、Webスクレイピングツールの活用がおすすめです。中でも、[Octoparse](https://www.octoparse.jp/)はノーコードでポストデータを抽出できる便利なツールです。Octoparseのテンプレートには、すでにXのAPIが組み込まれているため、データ収集プロセスを高速かつ効率的に実行し、スクレイピングに必要な技術インフラをユーザーに提供します。

まずは実際に触ってみて、Xスクレイピングを体感してみてください。

元記事参考：https://www.octoparse.jp/blog/how-to-scrape-and-download-tweets-for-free