[TwitterAPI] Pythonでツイートを取得してみる

Python
スポンサーリンク

はじめに

以前TwitterAPIの登録(認証キー取得)について記事を書きました。その後、試しに特定のキーワードを何個か取得する簡単なコードを書いてみました。

当記事ではそのまとめになります。

事前にtweepyという拡張パッケージをインストールしておきましょう。

インストール例

pip install tweepy

コードの解説

コードの流れとしては以下のような形です。

  1. tweepyとcsvをインポート
  2. APIの認証
  3. 取得したいツイートのキーワードの入力
  4. ツイートを取得しリストにまとめる
  5. csvファイルへ出力

このように書く内容はごく単純なので、認証キーを既に持っていればすぐ試すことが出来ます。

以下、APIの認証、ツイートを取得しリストにまとめる、csvファイルへ出力について解説します。

APIの認証

API認証キーを既に取得済みであることを前提に解説いたします。未取得の方は、こちらの記事を参考に取得してみて下さい。

#API認証キー
consumer_key = 'enter your API key'
consumer_secret = 'enter your API secret key'
access_token = 'enter your Access token'
access_secret = 'enter your Access token secret'
#API認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth, wait_on_rate_limit = True) # API利用制限にかかった場合、解除まで待機する

API認証キーとはこちらのページの赤丸に書かれているものです。4つとも上から順にクオーテーションの中の文字を消して書き入れましょう。

そのあとの2行で認証が実行されます。

ツイートを取得しリストにまとめる

取得したいキーワードをターミナルから入力し、キーワードが入ったツイートを日本限定で10個取得します。その後、下記のツイート情報をリストに格納します。

  • ユーザーネーム
  • ツイート日時(UTC)
  • ツイート本文
  • リツイート数

注意すべき点としては、取得するツイートの個数にて一度に取得できる個数は100個までなので100以上を設定しないようにしましょう。制限に引っ掛かります。

q = input("キーワードを入力してください:") #検索したいキーワード
count=10 #取得するツイートの個数
tweet_list=[]
 
tweets = api.search(q=q, locale="ja", count=count, tweet_mode='extended')
tweet_list.append(["","User name", "Date(UTC)", "Tweet", "Retweet"])
for tweet in tweets:
    tweet_list.append(["@", tweet.user.screen_name, tweet.created_at,tweet.full_text,\
                       tweet.retweet_count])

csvへ出力

詳細はこちらの記事でも書きましたので細かくは書きませんが、Excelで開く場合はencordingの部分をutf-16に設定する事、writerowsで書き込む事が要点になります。

with open("Tweetdata_utf-16.csv", "w", newline="", encoding="utf-16") as f:
    writer = csv.writer(f, dialect="excel-tab", quoting=csv.QUOTE_ALL)
    writer.writerows(tweet_list)

ソースコードと実行例

import tweepy
import csv
 
#API認証キー
consumer_key = 'enter your API key'
consumer_secret = 'enter your API secret key'
access_token = 'enter your Access token'
access_secret = 'enter your Access token secret'
#API認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth, wait_on_rate_limit = True) #tweepy.APIメソッドをapiに代入。API利用制限にかかった場合、解除まで待機する

q = input("キーワードを入力してください:") #検索したいキーワード
count=10 #取得するツイートの個数
tweet_list=[]
 
tweets = api.search(q=q, locale="ja", count=count, tweet_mode='extended')
tweet_list.append(["","User name", "Date(UTC)", "Tweet", "Retweet"])
for tweet in tweets:
    tweet_list.append(["@", tweet.user.screen_name, tweet.created_at,tweet.full_text,\
                       tweet.retweet_count])

with open("Tweetdata_utf-16.csv", "w", newline="", encoding="utf-16") as f:
    writer = csv.writer(f, dialect="excel-tab", quoting=csv.QUOTE_ALL)
    writer.writerows(tweet_list)

今回は”コロナウイルス”で実験してみました。

csvファイルを開いてみると取得が出来ていることが確認できます。ツイート内容は伏せていますが、コロナウイルスというキーワードが全て入っていました。



bot的な機能も実装できるようなので、今後チャレンジしてみようと思います。

マスルキン

当ブログ管理人のマスルキンです。

高専電気系学科に5年間在籍。卒業後は専攻科に進学し現在に至る。

生まれつき聴覚障害があり
補聴器の使用、コミュニケーションでは読唇や手話などを用いています。

当ブログでは
・プログラミング・研究関係の備忘録
・趣味(筋トレ、カメラ、プラモデル、etc...)
・自身の日常
などを自由気ままに皆様に発信いたします。

記事が皆様のお役に立てば幸いです。

マスルキンをフォローする
Python プログラミング
スポンサーリンク
マスルキンをフォローする
マスルキンの部屋

コメント

タイトルとURLをコピーしました