【Python】twitterを操作する⑧ -位置情報付きのツイートの検索

Twitterでは位置情報付きでツイートすることができます。同時に、位置情報でツイートを検索することもできます。

今回はTwitter APIを使って、Pythonから位置情報でツイートを検索する方法を紹介します。ツイートの検索については以下記事も参考にしてみてください。

前提として、tweepyを用います。

Pythonで実装

認証

まずは Twitter Developersからキーを取得し、認証を行います。

import tweepy

API_Key     = "Your API key"
API_Sec     = "Your API Key Secret"
Token       = "Your Access Token"
Token_Sec   = "Your Access Token Secret"

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(API_Key, API_Sec)
auth.set_access_token(Token, Token_Sec)
api = tweepy.API(auth)

検索

ツイート検索にはapi.search_tweets()を用います。位置情報で検索する場合、引数にgeocodeを指定します。

tweets = api.search_tweets(count=5, q="遊び", geocode="35.6467139,139.707889,1km")

例の場合、「遊び」というキーワードのツイートを検索します。

geocodeは緯度経度とその点を起点にどの範囲まで検索するかという情報を文字列で渡します。書き方としては、”緯度、経度、半径”です。例の場合は、指定の座標から半径1km以内のツイートを検索しています。

ツイートの地理情報を確認する

上記のクエリで実際に取得したツイートの位置情報を確認してみます。上記例では5件取得していますが、そのうち1件の情報を見てみます。

for tweet in tweets:
    print('='*20)
    print('ツイート時間 : ' , tweet.created_at)
    print('ツイート本文 : ', tweet.text)
    print("位置情報 : ", tweet.place)
    print('='*20)

>>====================
  ツイート時間 :  2022-03-25 05:14:48+00:00

  ツイート本文 :  Instagramにも酒遊び とらとらの投稿をしています😊
  タラバ蟹の純米酒しゃぶしゃぶは、タラバ蟹の美味が増してクセになりそうです。
  ペアリングは広島の竹鶴の秘傳の3年熟成です。
  スーと口に入り、マイルドな口当たりです😋… https://t.co/WErqajDMVX

  位置情報 :  Place(_api=<tweepy.api.API object at 0x000002D9609AEA90>, id='0fc2e9e79394f000', 
  url='https://api.twitter.com/1.1/geo/id/0fc2e9e79394f000.json', place_type='poi', 
  name='恵比寿神社', full_name='恵比寿神社', country_code='JP', country='Japan', 
  contained_within=[], bounding_box=BoundingBox(_api=<tweepy.api.API object at 0x000002D9609AEA90>, 
  type='Polygon', coordinates=[[[139.7078025341034, 35.64718345308427], 
  [139.7078025341034, 35.64718345308427], [139.7078025341034, 35.64718345308427], 
  [139.7078025341034, 35.64718345308427]]]), attributes={})
====================

tweet.placeからは位置情報に関する様々な情報を取得できます。

  • id:その位置のID
  • url:その位置に関する情報のURL。ブラウザでアクセスするとJSONファイルを取得できる
  • place_type:位置情報のタイプ。cityまたはpoi(point)がある。
  • name:その位置の名前
  • full_name:その位置のフルネーム
  • country_code:国コード
  • country_name:国名
  • contained_within:その位置が保持する位置オブジェクトが存在すればtweet.placeのオブジェクトが配列で保持される
  • bounding_box:その位置の範囲。緯度経度で表現される

まとめ

Twitter APIで位置情報付きツイートを検索する方法を紹介しました。ただ、Twitterで位置情報を付けてツイートする人はあまり多くないようで、そんなにヒットしませんでした(;^_^A

活用機会があれば、参考にしてみてください。

ではでは👋