LoginSignup
4
6

More than 5 years have passed since last update.

Twitter APIを使って熱海の観光地人気度を調べてみた(Python3)

Posted at



今度、熱海旅行をすることになったのだが
ここで問題発生。観光地を調べるのはいいのだ何処いいのか分からない。。。

そこで

Twitterにたくさんのつぶやきがある=人気で楽しい!?
という仮説の元、TwitterのAPIを使ってつぶやき数を調べることで人気の観光地を調べることにした

熱海bot

ツイッターで熱海の観光地について調べていると熱海botと言う熱海のスポットやグルメ、豆知識なんかを定期的にツイートしているbotを発見した(@atamitown)

webで調べた熱海の観光地とここでつぶやかれているスポットやグルメを参考にTwitterで検索しつぶやきの数を調べることにした

つぶやき数を調べるプログラム

Twitter APIを使用するにはまず公式のページでアプリケーション登録をし,APIキー(Consumer Key, Consumer Secret, Access Token, Access Token Secret)取得しなくてはいけないのだがその説明は他の人がQiitaにとてもわかりやすい記事をあげてくださっているので省かせてもらう

開発言語:Python3

まず、以下のコマンドで必要なライブラリをインストールする

python3 -m pip install requests requests_oauthlib

twieet_research.py
# -*- coding: utf-8 -*-
from requests_oauthlib import OAuth1Session, OAuth1
import json
import requests
import urllib
import sys
import io

input_word = input("word: ") #調べたい単語を入力 複数の場合(例:熱海 AND 伊豆山神社)

consumer_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #取得したAPIキーを入力
consumer_key_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #取得したAPIキーを入力
access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #取得したAPIキーを入力
access_token_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #取得したAPIキーを入力

word = urllib.parse.quote_plus(input_word)

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

#urlを変更することで自分の好みの条件で調べられる
url = "https://api.twitter.com/1.1/search/tweets.json?exclude=retweets&since=2018-07-07&until=2018-07-15&count=100&lang=ja&q=" + word
auth = OAuth1(consumer_key, consumer_key_secret, access_token, access_token_secret)
response = requests.get(url, auth = auth)
data = response.json()['statuses']

count = 0

while True:
    for tweet in data:
        count += 1
        maxid = int(tweet["id"]) -1

    if(len(data) == 0):
        break

    url = "https://api.twitter.com/1.1/search/tweets.json?exclude=retweets&since=2018-07-07&until=2018-07-15&count=100&lang=ja&q=" + word + "&max_id=" + str(maxid)
    auth = OAuth1(consumer_key, consumer_key_secret, access_token, access_token_secret)
    response = requests.get(url, auth = auth)
    data = response.json()['statuses']

print("-------------------------------")
print(input_word)
print("ツイート数:" + str(count))
print("twieet/day:" + str(int(count)/7))

Python3でTwitter APIを使用したプログラムは既にたくさんのページで説明されていたのでそれを参考にした。
参考にしたWebページ(http://www.inmyzakki.com/entry/2017/05/16/183000)


日本語で入力するので文頭に文字コード宣言をする

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


今回は直近の一週間(7月7日〜7月15日)という期間内でのツイート数を調べるためurlは以下のようにした。ここは自由に条件を変更すると良い。変更した場合while内にも同じようなコードがあるのでどちらも変更するのを忘れないように。

url = "https://api.twitter.com/1.1/search/tweets.json?exclude=retweets&since=2018-07-07&until=2018-07-15&count=100&lang=ja&q=" + word

exclude=retweets (リツイートを除外する)
since=2018-07-07 (2018年7月7日からのツイートを検索する)
until=2018-07-15 (2018年7月15日までのツイートを検索する)

熱海スポット部門 エントリー

・伊豆山神社
・ムーンテラス
・お宮の松
・走り湯
・超雲閣
・糸川遊歩道
・熱海梅園
・熱海サンビーチ
・熱海温泉
・熱海海浜公園
・MOA美術館
・来宮神社
・熱海トリックアート
・熱海商店街

熱海スポット部門 ランキング

※(2018年7月7日〜2018年7月15日までの調査)

第一位:熱海温泉
ツイート数:925ツイート
twieet/day: 132ツイート

さすがは日本三大温泉の一つだけはありますね!



せっかくなので二位と三位の紹介もします
他にもたくさんのスポットがあるので時間があればぜひ立ち寄ってみたいです

////////////////////////////////

第二位:来宮神社
ツイート数:126ツイート
twieet/day: 18ツイート
/////////////////////////////////

第三位:熱海サンビーチ
ツイート数:88ツイート
twieet/day: 12ツイート

/////////////////////////////////

グルメ部門 エントリー

・こばやし
・MON
・壹番
・住吉屋
・鯛めし
・ほていや
・三木製菓
・七尾たくあん
・わかなや
・藍花
・一楽
・ぼんねっと
・CAFE KICHI
・村上
・石川屋
・まる天
・宝亭

熱海グルメ部門 ランキング

※(2018年7月7日〜2018年7月15日までの調査)

第一位:まる天
ツイート数:392ツイート
twieet/day: 56ツイート

磯揚げのお店みたいです駅前の商店街にあるみたいなのでぜひ寄って食べてみたいです



他にも美味しそうな店が多いのですが、二位と三位までは紹介します

////////////////////////////////

第二位:ほていや
ツイート数:34ツイート
twieet/day: 4ツイート

/////////////////////////////////

第三位:壹番
ツイート数:19ツイート
twieet/day: 2ツイート

/////////////////////////////////

おまけ 熱海の豆知識

今回は熱海への旅行ということで熱海について調べました。今からとても楽しみです
今回紹介したプログラムは別の場所への旅行でも使えると思うので、ぜひ参考にしていただけると幸いです
  
最後に熱海botで紹介されていた豆知識を数個紹介します

「熱海在住の有名人」
・押井守(映画監督)
・杉本苑子(小説家)
・橋田壽賀子(脚本家)
・伊藤和典(脚本家)
・泉ピン子(女優)
・NOKKO(歌手)
・新田たつお(漫画家)
・福永令三(小説家)

「映画の舞台、熱海」
『女』
『婚約指輪』
『伊豆物語』
『東京物語』
『熱海ブルース』
『キングコング対ゴジラ』
『台所太平記』
『大巨獣ガッパ』
『熱海殺人事件』
『おもひでぽろぽろ』
『クレヨンしんちゃん 嵐を呼ぶ栄光のヤキニクロード』
『任侠ヘルパー』


熱海ゆるきゃら「あつお」

4
6
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
6