今回は、Pythonで、指定のキーワードを投稿した人を、まとめてリストに追加できるアプリケーションをつくってみたいと思います。

内容としては、

  1. 指定したキーワードで検索して、そのキーワードを呟いた人をリストをCSVにエクスポートする機能
  2. ツイッター名が入ったCSVをインポートして、ツイッターのリストを作成する機能

です。

①指定したキーワードで検索して、そのキーワードを呟いた人をリストをCSVにエクスポートする機能

例を出すと、「 #駆け出しエンジニアと繋がりたい 」というキーワードでTwitter検索した時に、上位100件のユーザーをCSVに落とすアプリです。 実際に自動で作ってみたのがこのリストです。 

 

このnoteで作る前に必須のスキル

このnoteでは、割と初心者向けに解説するつもりですが、以下のことはできて欲しいです。

  1. Pythonの基礎の理解
  2. Pythonの環境構築の理解
  3. Twitter APIの申請方法

この辺に関しては、ProgateやQiitaなどを参考にしてください。また、Twitter APIには申請に時間がかかるので、あらかじめご了承ください。

①Pythonの基礎の理解

綺麗なコードはかける必要はないので、本当に基礎だけ勉強しておいてください。

Progate(プロゲート) | Learn to code, learn to be creative

②Pythonの環境構築

今回は環境構築はGoogle Colaboratoryを利用するので不必要ですが、LINUXコマンドを少し利用します。環境構築周りの理解や、LINUXコマンドの基礎知識があると良いです。

Pythonの開発環境を用意しよう!(Windows)

Pythonの開発環境を用意しよう!(Mac)

 

③Twitter APIの申請

 

今回は、外部からTwitterを自動で動かすAPIを利用します。APIの申請が必要になるので、下記のQiitaの手順で登録しておきましょう。

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

手順

  1. Twitter APIを利用して、検索キーワードからユーザーリストを作成
  2. CSVにエクスポートする
  3. CSVからリストを作成

という流れで進めていきます。 では早速進めていきましょう。

①Google Colaboratoryを開く

  まず、Pythonがブラウザ上で実行できるようにGoogle Colaboratoryを開きます。導入方法については過去記事にまとめておりますので、こちらの手順で進めてみてください。

> Google DriveでPythonの実行環境を整える方法をまとめてみた

②必要なライブラリのインストール

  まずは必要なライブラリをインストールしていきます。

  1. Pandas: CSVの読み込み、エクスポート、作成に利用
  2.  Tweepy: TwitterのAPIを利用するために利用

基本的には、Google Colaboratory上で利用できるようになっているので、ライブラリのインストールコマンドは不要ですが、万が一起動しない場合は

!pip install pandas
!pip install tweepy

を実行します。

②必要なライブラリのインポート

次にインストールしたライブラリをインポートします

import pandas as pd
import tweepy

 

③APIキーの取得

次に、TwitterのAPIキーを取得します。 APIキーの取得方法は毎年変わるので、最新バージョンをチェックしましょう。こちらのQiitaの通りに進めると、申請を行うことができます。 ただし、数日かかるので注意が必要です。 

④APIキーをセットする

APIキーをセットします。  

/* Your code... */
import pandas as pd
import tweepy

ACCESS_TOKEN = ""
ACCESS_SECRET = ""
CONSUMER_KEY = ""
CONSUMER_SECRET =""

 

⑤APIインスタンスの作成

Tweepyを初期化します。ここでの処理は、OAuth認証という複雑な認証処理を行なっているのですが、Tweepyを利用すると非常に簡単に認証を行うことができます。詳しくは、こちらの記事を参照してください。 

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

 

import pandas as pd
import tweepy
ACCESS_TOKEN = ""
ACCESS_SECRET = ""
CONSUMER_KEY = ""
CONSUMER_SECRET =""

#APIインスタンスを作成
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

 

⑥Pandasを利用して、CSVデータの作成から抽出まで学ぶ

最終的には、最初に検索したキーワードについてツイートしている人のリストを取得します。

  1. Twitterで検索したいキーワードを設定
  2.  Twitter API上でキーワードを検索
  3.  それぞれのツイートのユーザー名を取得
  4.  ユーザー名をCSVに保存

という流れで進めていきます。 まずはキーワードを設定します。


import pandas as pd
import tweepy
ACCESS_TOKEN = ""
ACCESS_SECRET = ""
CONSUMER_KEY = ""
CONSUMER_SECRET =""

#APIインスタンスを作成
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

 

⑦Pandasの利用方法を学ぶ

  Pandasでは、データフレーム(df)という、行列を扱うことができます。ここでは、screen_nameという列名を持ち、行として

  • hoge
  • fuga
  • piyo

という行を追加したいとします。 ここからは、上記までで書いたコードはいったん無視して解説しますね。 まずは、以下のようにデータフレームを作成します。

columns = ["screen_name"]
df = pd.DataFrame(columns=columns)

  実際に中身をみたい場合は、headメソッドを利用して、5行目まで確認します。

/* Your code... */
df.head()

  こうすると、まだ行を追加していないので、screen_nameのみがみれるはずです。

screen_name列に行を追加する