Weitere ähnliche Inhalte
Ähnlich wie Twitter apiを使って地域別のトレンドを取得する! (20)
Twitter apiを使って地域別のトレンドを取得する!
- 10. 地域のトレンド取得
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. 地域のトレンド取得
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. 地域のトレンド取得
12
c. 地域トレンド取得
● get_place_trends (woeid):
引数に指定した地域のトレンド
をランキング順に辞書型で渡す
(上位50件)
● 整形しないと何がなんなのかよくわからない
for key,woeid in woeids.items():
# トレンド情報を取得
trends = api.get_place_trends (woeid)
pprint.pprint (trends)
- 13. 地域のトレンド取得
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)