【超簡単‼】TwitterAPIで特定の人のツイートを一括で取得する方法を解説‼

python
スポンサーリンク
スポンサーリンク

初めに

Twitterを使っていて、「ツイートを分析したいな」みたいなことを思ったことありませんか?

特定のアカウントのツイートを分析すると、「この人がどのようにしてフォロワーを増やしたのか」を知ったり、「子のツイートでこの人が有名になった」などといった情報を分析することができます

でも、このデータ収集をいちいち手作業でやっていると、凄い手間と時間がかかり、非常に効率が悪いです。

ということで、今回は、TwitterAPI(Tweepy)を使って、ツイートを簡単に一覧で取得する方法を解説していきたいと思います‼

TwitterAPIを登録しよう‼

TwitterAPIに登録します。(Twitter社が公式で出しているので、怪しいやつではないです。)

↓登録方法についてはこちらの記事を参考に‼

正直言ってTwitterAPIの登録は少しめんどくさいです。

でも、昔よりも遥かに審査が簡単になっており、昔だったら1週間ぐらいかけて登録するものだったんですが、最近は1時間もかからず登録できます。

そして、API keyとAPI secret key、さらに、Access keyと、Access secret keyの4つのkeyを取得してください。

TwitterAPIに登録できたら、次は、プログラムで使うPythonをインストールする方法について解説していきたいと思います‼

(プログラミングと聞いて一見難しそうに思うかもしれませんが、とても簡単なので、安心してください。)

Pythonをインストールする

プログラムでは、プログラミング言語として、Pythonを使用します。(一見難しそうと思うかもしれませんが、実は超絶簡単です‼)

まだ、インストールしてない方は一瞬でできるので、インストールしてください‼

↓Pythonのインストール方法はこちら‼‼

ライブラリのインストール

次に、ライブラリをインストールしていきます。(ブラウザでいう拡張機能みたいなもの。)

コマンドプロンプトを開いて、「pip install tweepy pandas pytz」と入力してEnterを押してください。

これで必要なライブラリのインストールは完了です。次は実際にプログラムを作っていきましょう‼

プログラムの作成

では、実際にプログラムを作っていきましょう‼

プログラムと聞くと難しそうだと思うかもしれませんが、コピペするだけなので簡単です。

まず、メモ帳を開いてください。

そして、メモ帳に下のコードをコピペします。

import tweepy
from datetime import datetime,timezone
import pytz
import pandas as pd

# 認証に必要なキーとトークン
#「TwitterAPIに登録する」のところで作成して取得したキーを入力。
API_KEY = ''
API_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_TOKEN_SECRET = ''

# APIの認証
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)


# APIの認証
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

#取得するツイートの数と、検索するアカウントの入力
Account= 'tisikinohako1'
item_num = 10
#検索条件を元にツイートを抽出
tweets = tweepy.Cursor(api.user_timeline,id=Account).items(item_num)
#世界時間を日本時間に変換する
def change_time_JST(time):
    utc = datetime(time.year, time.month,time.day, \
    time.hour,time.minute,time.second, tzinfo=timezone.utc)
    jst = utc.astimezone(pytz.timezone("Asia/Tokyo"))
    str_time = jst.strftime("%Y-%m-%d_%H:%M:%S")
    return str_time
tweet_data = []
for tweet in tweets:
    #ツイート時刻とユーザのアカウント作成時刻を日本時刻にする
    tweet_time = change_time_JST(tweet.created_at)
    create_account_time = change_time_JST(tweet.user.created_at)
    #tweet_dataの配列に取得したい情報を入れていく
    tweet_data.append([
        tweet.id,
        tweet_time,
        tweet.text,
        tweet.favorite_count, 
        tweet.retweet_count, 
        tweet.user.screen_name,
        tweet.user.name,
        tweet.user.description,
        tweet.user.friends_count,
        tweet.user.followers_count,
        create_account_time,
        tweet.in_reply_to_status_id_str,
        tweet.in_reply_to_user_id_str,
        tweet.coordinates,
        tweet.user.verified
                       ])
#取り出したデータをpandasのDataFrameに変換
#CSVファイルに出力するときの列の名前を定義
columns=[
    'ツイートID',
    'ツイートされた時間(日本時間)',
    'ツイートの内容',
    'いいねの数',
    'リツイートの数',
    'ツイートした人のID',
    'アカウント名',
    '自己紹介文',
    'フォロー数',
    'フォロワー数',
    'アカウント作成日時',
    'ツイートが返信の場合、返信先のツイートID',
    'ツイートが返信の場合、返信先のユーザーID',
    'ツイートされた場所',
    '認証アカウント(公式アカウント)かどうか'
    ]
#tweet_dataのリストをpandasのDataFrameに変換
df = pd.DataFrame(tweet_data,columns=columns)
#CSVファイルに出力する
#CSVファイルの名前を決める
file_name='tweet.csv'
#CSVファイルを出力する
df.to_csv(file_name,encoding='utf-8-sig',index=False)

コードを貼り付けて保存する

メモ帳にコードを貼り付けます。

↓こんな感じ。

そして、「ctrl+s」をおして、下のような感じで保存します。(ファイル名の最後は、「.py」にしてください。)

これで、プログラムの作成は完了です。

プログラムを実行

では、実際にプログラムを実行してフォロー解除していきましょう‼

先ほどのファイルを保存したディレクトリに行って、アドレスバーのところに「cmd」と入力してEnterを押してください。

すると、コマンドプロンプトが起動すると思います。

そして、「python ツイートの取得.py」と入力して、Enterを押してください。

これでプログラムの実行は完了です。

実際にツイートを取得できているか見ていきましょう‼

ツイートを取得できているか確認する

ツイートを取得できているか確認していきましょう‼

まず、先ほどのファイルを保存して実行したディレクトリを開いてください。

見てみると、下の赤丸で囲ったように、「tweet.csv」ができていると思います。

そして、中身を見てみると、ちゃんとツイートを取得できています。

これで特定のアカウントのツイートを一括で取得する方法についての解説は終わりです‼

終わりに

いかがでしたか。

これを使えば、ツイートを簡単に一瞬で一括取得することができて、分析とかする時に、データ収集が非常に楽になりますね。

もしわからないところや、エラーが出てきておかしいところ等ございましたら、コメント欄で気軽に聞いてください。

ほかにも面白い記事たくさんありますので、ほかの記事も一緒に見ていただければ嬉しいです。

それでは次の記事で‼

プロフィール

この記事を書いた人

このブログの情報が少しでも役に立てれば嬉しいです。