SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
[Python × TwitterAPI]
日本のトレンドを取得してみた!
株式会社ラクス
楽楽販売開発課
高山 大貴
自己紹介
2
氏名:高山 大貴(タカヤマ ダイキ)
出身:長崎県
所属:株式会社ラクス
楽楽販売開発課(新卒1年目)
趣味:古着、映画鑑賞、読書、散歩
主に使う言語:
PHP(業務)
Python(趣味)
Twitter:@daiKi_ToT
目次
3
● 経緯
● TwitterAPIに利用申請を出し、KEYとTOKENを取得
● 地域トレンド取得
○ APIにアクセス
○ WOEIDをセットして、トレンドの一覧を取得
経緯
4
目的:Twitter API を使って地域別にトレンドを取得してみる
きっかけ:Twittrend(ついっトレンド)
というTwitterのトレンドを各地域ごとにまとめているWebサイト
どうやって情報をとってきているのか気になった
Twitter API に利用
申請を出す
1
5
TwitterAPIに利用申請
6
以下のURLから利用申請できる
https://developer.twitter.com/en/apps  
色々質問される
● Twitterアカウント情報(事前にアカウントが必要)
● 利用用途(英語500文字以上)
● 作成するアプリはツイート、リツイートなどの昨日を有するか?
(英語)
TwitterAPIに利用申請
7
● うまく登録できたら以下のKey/Token
をメモ(後で使う)
○ API Key
○ API Key Secret
○ Access Token
○ Access Token Secret
地域のトレンドを
取得
2
8
地域のトレンド取得
9
使用する言語:Python
a. 【事前準備】今回使用するライブラリをインポートしておく
ライブラリ名 使用用途
tweepy Twitter APIを利用した操作を簡略化
pandas APIから受け取った情報を csvデータ出力するために使用
% pip install tweepy
% pip install pandas
地域のトレンド取得
10
b. Twitter API のアクセス認証
● tweepy を使用してapiにアクセス
● tweepy.API(auth) でOAuth認証
"""
tweepy 設定
"""
# OAuthHandler インスタンス生成
auth = tweepy.OAuthHandler(API_KEY,API_KEY_SECRET
)
# アクセストークン設定(
API Token,API Token Secret
)
auth.set_access_token
(TOKEN, TOKEN_SECRET)
"""
apiにアクセス
(wait_on_rate_limit = True)
万が一利用制限に引っ掛かったら必要時間待機する
"""
api = tweepy.API(auth ,wait_on_rate_limit = True)
地域のトレンド取得
11
c. 地域別のトレンド取得
● WOEID(Where On Earth IDentifier)を活用
● 世界の国・都市(467箇所)にIDを割り振っている
(日本は21種類!)
● tweepy のavailable_trends() で世界中のwoeid の
リストを取得
今回は試しに日本・東京・大阪のトレンドを取得してみる
# 世界中のwoeid を取得
for woeid in
api.available_trends():
print(woeid)
# 日本、大阪、東京
woeids = {
'JAPAN' : 23424856,
'OSAKA' : 15015370,
'TOKYO' : 1118370
}
地域のトレンド取得
12
c. 地域トレンド取得
● get_place_trends (woeid):
引数に指定した地域のトレンド
をランキング順に辞書型で渡す
(上位50件)
● 整形しないと何がなんなのかよくわからない
for key,woeid in woeids.items():
# トレンド情報を取得
trends = api.get_place_trends (woeid)
pprint.pprint (trends)
地域のトレンド取得
13
d. 取得したデータをcsvに出力
● pandas を使用すると簡単
● 辞書型で受け取ったトレンドデータを
DataFrame型に変換
● csvファイルに出力
for key,woeid in woeids.items():
# トレンド情報を取得
trends = api.get_place_trends (woeid)
pprint.pprint (trends)
# pandas データフレームに変換
df = pd.DataFrame(trends[0]["trends"])
FILE_NAME = 'tw_trends_' + key +'.csv'
df.index = df.index + 1
# csvファイルを出力
df.to_csv(FILE_NAME,encoding =
'utf-8-sig' ,index = True)
地域のトレンド取得
14
● 実行結果(実行日:⅜ 08:45) 日本のトレンド
● DataFrame 型に整形することで、辞書型のkey が列名、行のインデックスを自
動で割り振り
↓辞書型のキー
→
イン
デッ
クス
地域のトレンド取得
15
● 実行結果(実行日:⅜ 08:45)
日本のトレンド
念の為ブラウザと比較
完全に
一致!!
今後の展望
16
高山⇦ ニュースを見ない
Bot化して、その日のトレンドを勝手に教えて欲しい!!
17
ご静聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
Norisuke Hirai
 
5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ
Takao Oyobe
 

Was ist angesagt? (20)

MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
LLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみたLLM+LangChainで特許調査・分析に取り組んでみた
LLM+LangChainで特許調査・分析に取り組んでみた
 
プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶプロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
プロジェクトマネジメントの原理原則を、おでん作りストーリーで学ぶ
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
Part 0.5: 事例を中心としたユースケース (製造リファレンス・アーキテクチャ勉強会)
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Efficient Det
Efficient DetEfficient Det
Efficient Det
 
Spring Cloud Gateway on Kubernetes
Spring Cloud Gateway on KubernetesSpring Cloud Gateway on Kubernetes
Spring Cloud Gateway on Kubernetes
 
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
エンジニアから都庁へ~中の人が語る街のDX、都庁のDX~
 
5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ5分でわかった気になるインセプションデッキ
5分でわかった気になるインセプションデッキ
 
分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要分散ストレージソフトウェアCeph・アーキテクチャー概要
分散ストレージソフトウェアCeph・アーキテクチャー概要
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
CloudNativeな決済サービスの開発と2年間の歩み #sf_A4
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 

Ähnlich wie Twitter apiを使って地域別のトレンドを取得する!

Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
Takeshi Komiya
 

Ähnlich wie Twitter apiを使って地域別のトレンドを取得する! (20)

Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )Python for Beginners ( #PyLadiesKyoto Meetup )
Python for Beginners ( #PyLadiesKyoto Meetup )
 
PyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LTPyLadies Tokyo 二周年記念パーティ LT
PyLadies Tokyo 二周年記念パーティ LT
 
Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk Python入門者の集い #6 Lightning Talk
Python入門者の集い #6 Lightning Talk
 
S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5S12 t1 python学習奮闘記#5
S12 t1 python学習奮闘記#5
 
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
 
Py datameetup1
Py datameetup1Py datameetup1
Py datameetup1
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
 
Ruby開発の現場を支える技術
Ruby開発の現場を支える技術Ruby開発の現場を支える技術
Ruby開発の現場を支える技術
 
Demonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform EventDemonstration of Einstein Language with Platform Event
Demonstration of Einstein Language with Platform Event
 
RFinanceJはじめました
RFinanceJはじめましたRFinanceJはじめました
RFinanceJはじめました
 
HTML5でteratailが喋った!
HTML5でteratailが喋った!HTML5でteratailが喋った!
HTML5でteratailが喋った!
 
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
Tech-Circle Pepperで機械学習体験ハンズオン勉強会inアトリエ秋葉原
 
アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編アクティビストのためのTwitter講座! 入門編
アクティビストのためのTwitter講座! 入門編
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
 
DevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pubDevRel Meetup27 Igarashi-pub
DevRel Meetup27 Igarashi-pub
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
鳥取python勉強会 第1回
鳥取python勉強会 第1回鳥取python勉強会 第1回
鳥取python勉強会 第1回
 
Raspberry PiとPythonでできること
Raspberry PiとPythonでできることRaspberry PiとPythonでできること
Raspberry PiとPythonでできること
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 

Twitter apiを使って地域別のトレンドを取得する!