【114日目】Tweepy_search_30_dayメソッドと位置情報
tweepyを使ったアプリ作りを進める一環で、search_30_dayメソッドで特定の地域で発信されたツイートを取得する試みです。
search_30_dayメソッドについては前回の記事で簡単に触れました。
その名の通り過去30日分まで遡ってツイートを取得できるメソッドです。
tweepyのプレミアムアクセスと呼ばれる少し応用的なメソッドで、簡易版であるsearch_tweetメソッドとは書き方が異なる部分がありました。
まず下準備として、Developer Portalからsearch_30_dayを使うための設定を行います。
↓こちらから入ります
↓続いてSet up dev enviromentをクリックします
続いてlabel名と紐づけるアプリ(Developerアカウントの登録時に設定したもの)を設定します。label名は実際にコードを書く際に必要になるものです。(testと記載していますが、色々あってtest1に変更してます)
完了すると以下のような画面になります。
ここまでで下準備は完了です。
では実際にsearch_30_dayを使ってみたいと思います。
import tweepy
# 以下はAPIのためのコード
api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
access_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
auth = tweepy.OAuth1UserHandler(api_key, api_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
# 検索条件の設定(キーワードを設定し、位置情報とセットにしている)
searchkey = "ランチ"
search ="{} point_radius:[140 36 30km]".format(searchkey) # 東京は東経140度 北緯36度
item_num = 10
# 検索条件を元にツイートを抽出(labelはTwitterのDeveloper portalで設定可能)
tweets = tweepy.Cursor(api.search_30_day, label='test', query=search,).items(item_num)
# 一度リストにしないとその後の操作ができない
tweets = list(tweets)
tweet_data = []
for tweet in tweets:
tweet_data.append([tweet.created_at, tweet.user.name, tweet.text, tweet.favorite_count])
print(tweet_data)
Jupyter lab等で上記のコードを実行すれば、東京の半径30kmで投稿されたツイートを取得できます。
↓こんな感じの出力結果です(ごちゃごちゃですみません、、)。
ちなみに地理情報はpoint_radiusで特定されています。
また、searchという引数でキーワードと地理情報をセットにしているのですが、これはこの形式でqueryに渡さないとキーワードが変数にできないからです。
今回はformat関数でまとめています。
searchkey = "ランチ"
search ="{} point_radius:[140 36 30km]".format(searchkey)
次はこれをDjangoでアプリ化していきたいと思いますーーー
できるかなー
参考
これまで修了したコース等
【YouTube_Django関係】
Pythonでウェブサービスを作ろう! 1
テンプレートをマスターしよう! 2
静的ファイルを配信しよう !3
本番公開しよう! 4
データベースと接続しよう! 5
ブログを作って学ぶモデル入門! 6
これが汎用ビューの力! 7
Djangoフォームを自由自在に操ろう! 8
djagoを最大限使って効率よくログインを作ろう! 9
ログイン完成!サインアップ & メール認証 10
データベースマイグレーション前編 15
データベースマイグレーション後編 16
【YouTube_Pandas関係】
3時間でマスター Pandas入門コース
Pandas20本ノック
【Paiza】
Aランクレベルアップメニュー 24/49問
データセット選択メニュー 12/17問
配列メニュー 64/64問
ループメニュー1 20/20問
ループメニュー2 12/20問
条件分岐メニュー 25/25問
二重ループメニュー 19/19問
配列活用メニュー 26/26問
文字列処理メニュー 30/30問
Bランクレベルアップメニュー 62/62問
Cランクレベルアップメニュー 30/30問
ランクB合格
ランクC合格
JavaScript体験篇 15/15講座
辞書(ディクショナリ)の基礎 8/8講座
【書籍/ブログ】
Django入門 | 初心者でも1時間でWebアプリ(Todoアプリ)を作成するコース
基礎からのMySQL
Web技術の基本
京大のPython教科書
Pythonデータベースプログラミング
Pythonエンジニアファーストブック
【Progate】
Python Ⅰ~Ⅴ
Python アプリ版 コースⅠ~Ⅴ
SQL Ⅰ~ Ⅳ
SQL アプリ版 コースⅢ
HTML&CSS 初級編
【環境構築】
Python, VSCode, MySQL(MAMP), Git / GitHub, HEROKU, anaconda, jupyter lab