LoginSignup
4
8

More than 5 years have passed since last update.

tweepyでツイッターのキーワード検索して、結果をエクセルに書き込む

Posted at

tweepyでツイッターをキーワード検索して、結果をエクセルに書き込む処理を作ったのでメモしておく。

以下を参考。
http://statsbeginner.hatenablog.com/entry/2015/10/21/131717
http://kasoutuuka.org/twitter-tweepy
http://qiita.com/Kamo3167/items/b13531938a68234f19bf
http://kivantium.hateblo.jp/entry/2015/01/03/000225

ソース

# -*- coding:utf-8 -*-

import tweepy
import datetime
import xlsxwriter

#keyの取得
CONSUMER_KEY = '****************'
CONSUMER_SECRET = '****************'
#OAuthHandlerクラスのインスタンスを作成
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
ACCESS_TOKEN = '****************'
ACCESS_SECRET = '****************'
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

# OAuth認証
api = tweepy.API(auth)

wb = xlsxwriter.Workbook('tweet.xlsx')
ws = wb.add_worksheet("teet")

# エクセルヘッダの作成
format = wb.add_format()
format.set_num_format('yy/mm/dd')
ws.write(0, 0, "name")
ws.write(0, 1, "user name")
ws.write(0, 2, "tweet")
ws.write(0, 3, "create date")

i = 1
# twitter内を検索し、結果をエクセルに書き込む
for status in api.search(q='"アイカツ"', lang='ja', result_type='recent',count=100):
    ws.write(i, 0, status.user.name)
    ws.write(i, 1, status.user.screen_name)
    ws.write(i, 2, status.text)
    ws.write(i, 3, status.created_at+ datetime.timedelta(hours=9),format)
    i = i + 1
wb.close()

結果

こんな感じで名前とユーザ名とツイートと投稿日をエクセルに書き込む。
image

tweepyでコーディングする前にやっておくこと

Twitter Application Managementで登録するんだけど、Websiteが必須だけどそんなもの使わないので、適当なURL入れておけばOK。

image

登録するときの注意点としてはツイッターアカウントに電話番号が必要という点。
でもって電話番号を登録するときに、電話番号とSMSに送信された6ケタの番号を入力するんだが、そこで電話番号も6ケタの認証番号もあってるのに登録できなかった。

原因は電話番号の頭の0をつけているから。090-XXXX-YYYYなら90XXXXYYYYでなければならない。
http://qiita.com/tk1024/items/644ead20793a6e869b83

アプリケーションを登録できたら以下をメモしておく

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

tweepyでコーディング

コーディングと言っても上記でメモしたkey情報でOAuth認証するくらいなので、検索のところだけ。

api.search(q='"アイカツ"', lang='ja', result_type='recent',count=100):
この処理はツイッターで「アイカツ」をキーワード検索して、抽出は日本の地域に絞る。最新のツイート100件を取得するというもの。

tweepyの仕様上、取得ツイート数の上限は100なので、101とかやっても100しか取得できない。

細かい設定については以下を参照。
https://syncer.jp/twitter-api-matome/get/search/tweets

雑感

取得ツイート数の上限が100なので、これを使って分析は難しいかなという印象。
実装自体は簡単だし、ツイートの取得のほかにツイート自体もできるので自動ツイートとかそういうのに使えたらいいのかなー。

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8