Python Tweepyを利用して、Twitter APIを使ったデータ収集方法を初心者向けに徹底解説してみた

最終更新日:

この記事の読者の対象

  • PythonでTwitterのAPIを利用したい人
  • PythonのTwitter APIラッパー Tweepyを利用したい人

PythonでTwitter APIを利用する

今回は、PythonでTwitter APIを利用する際に使える、Tweepyの使い方についてまとめてみます。
なお、Tweepyは開発が終了しています。

環境

  • Windows 10
  • Windows Subsystem for LinuxでUbuntuを利用
  • Python3

Tweepyのインストール

Tweepyを使っていて、ツイッターのAPIを利用できるTweepyというライブラリを使って、データを取ってきます。

$ pip install tweepy

APIの認証

中身のコードはこちらです。

各種APIキーは、下記記事から取得してください。APIキーの取得方法は毎年変わるので、常に最新版のドキュメントを色々と漁って下さい。

Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ ※2018年9月時点の情報

コピペして、

  • CONSUMER_KEY
  • CONSUMER_SECRET
  • ACCESS_TOKEN
  • ACCESS_TOKEN_SECRET

を入れると動作します。

import tweepy
CONSUMER_KEY = "ここに入力" 
CONSUMER_SECRET = "ここに入力"
ACCESS_TOKEN = "ここに入力"
ACCESS_TOKEN_SECRET = "ここに入力"
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth ,wait_on_rate_limit = True)

ユーザー情報の取得

APIで、ユーザー情報を取得します。
screen_nameは、ツイッターIDのこと。これとは別に、idがあり、これはTwitterユーザーのユニークIDになります。

user = api.get_user(screen_name="never_be_a_pm")
user

取得できるデータ例は以下の通りです。他にも様々なデータがあります。

  • ‘id’: 718015800133586944
  • ‘name’: ‘DAI’
  • ‘screen_name’: ‘never_be_a_pm’
  • ‘location’: ‘独学プログラマーのためのAIアプリ開発がわかる本’
  • ‘profile_location’: None,
  • ‘description’: ‘プログラミング、マーケティング、データアナリティクスに特化したメディアDAINOTE(https://t.co/eVD4JK4XT2)編集長。フリーランス。KADOKAWAさんから著書『独学プログラマーのためのAIアプリ開発がわかる本』が出ました。 ICU卒’,
  • ‘friends_count’: 515
  • ‘followers_count’: 27808
  • ‘listed_count’: 387
  • ‘display_url’: ‘amzn.to/2GkULrG’

これらのデータは、以下のようにアクセスすることが可能です。

user.screen_name # -> never_be_a_pm
user.description # -> プログラミング、マーケティング、データアナリティクスに特化したメディアDAINOTE(https://t.co/eVD4JK4XT2)編集長。フリーランス。KADOKA...
friends_count # -> 515
followers_count # ->27808

ツイートの検索

タイムラインのツイートを検索できます。ツイートのオブジェクトがリストでかえってきます。(複数のツイートがかえってきます)

tweets = api.search(q='"#駆け出しエンジニアと繋がりたい"', lang='ja', result_type='recent',count=12)
  • q :検索したいキーワード
  • lang: 検索する国。日本語の場合はja
  • result_type:
  • count: ツイート数を制限する

詳しくはAPIリファレンスを参照する。

≫ API Reference

ツイートの内容を取得

上で取得したのは、ツイートのリスト。for文を使うなりして、ひとつ取得して、中身を確認します。

※あとでかく

ツイートをファボする

ツイートをファボします。(ただし自動で複数やると凍結されますので注意です。)

api.create_favorite("tweetのid") 

フォローする

指定したユーザーをフォローします。(ただし自動で複数やると凍結されますので注意です。)

api.create_friendship("user_id")

 

指定したユーザーのフォロワーのIDを取得する

followers_ids = tweepy.Cursor(api.followers_ids, id = "screen_nameを入力", cursor = -1).items()
フォロワーのidがリストでかえってきます。これをfor文で回して、フォロワーのプロフィール詳細を取得したりできます。
指定したユーザーのフォローしているひとのIDを取得する
followers_ids = tweepy.Cursor(api.followers_ids, id = "screen_nameを入力", cursor = -1).items()

ユーザーリストの作成

ユーザーのリストを作成します。

api.create_list(name="リストの名前", mode=is_public, description = "リストの説明")
  • mode: 公開状態。is_public だと公開、is_privateだと公開になります。
  • name: リスト名
  • description: リストの説明

リストの削除

api.destroy_list(owner_screen_name="リストの作成者のscreen_name",slug="リストの名前") 

リストにユーザーを追加

api.add_list_member(”リストの名前”, id="ユーザーのscreen_name")

 

LINE@登録者限定で無料チュートリアルプレゼント中!

また、今回の記事に出てきたWeb APIの利用を基礎から学んでWebアプリを作ってみたいという方には、DAINOTEがおすすめです。

DAINOTEは、プログラミングの基礎から応用までを網羅したプログラミング教材です。
初心者や非エンジニアの方でも、Twitter分析のWEBアプリ、LINE Bot開発、業務の自動化などをゼロから学習することができます。

  • スクレイピング案件受託コース ~クラウドソーシング案件をやってみよう
  • LINE Bot開発コース | 自動文字起こしができる「文字起こしくん」を作ろう
  • Twitter分析Webアプリ「Top Tweets」を作ろう!
  • 【業務自動化】はじめてのプログラミングで、毎日の業務を効率化してみよう!

上記のような多くのコースの中から自分にぴったりのコースをお選びいただけます。特に今回のTwitter APIの内容を実践したい方は、Twitter分析アプリ作成コースがおすすめです。

LINE@に登録した方限定でチュートリアルが見れるようになっているので、ぜひ一度覗いてみてください!

DAINOTE オリジナルアプリを作ろう
PythonやGoogle Apps Scriptでオリジナルアプリを作りましょう

関連記事:もっと学習したい方向け

【2020年最新】Pythonや機械学習を学べるプログラミングスクール厳選3つ
【2020年】プログラミングスクールで受講者がおすすめした厳選6社を一挙解説【体験談まとめ】