新しい気象庁サイトからJSONデータが取得できる件

2021年2月25日

なに事が起きたのかと思ったら、天気予報や概況のデータがJSON形式で取得できるようになっているとか。天気APIとかを提供している民間気象会社もありますから、オープンデータで民業圧迫か?!とか良からぬことに思いを巡らせつつ調べてみますと、要は新しい気象庁の気象情報ページの表示の実装が静的なJSONデータを画面上にマッピングするように出来ているっぽいです。

例えば「全国の天気予報」https://www.jma.go.jp/bosai/forecast/ では、ページのソースを見ますと、

return basePath+"data/forecast/"+pathCode+".json"}

などと出てきます。なので東京のコード 130000 を当てはめると
https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
となります。応答ヘッダーを見てみますと、

$ curl --dump-header - https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 6798
Server: Apache
Last-Modified: Wed, 24 Feb 2021 07:45:03 GMT
Accept-Ranges: bytes
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Cache-Control: max-age=1
Date: Wed, 24 Feb 2021 13:55:12 GMT
Connection: keep-alive

[{"publishingOffice":"気象庁","reportDatetime":"2021-02-24T17:00:00+09:00","timeSeries":[{"timeDefines":["2021-02-24T17:00:00+09:00","2021-02-25T00:00:00+09:00","2021-02-26T00:00:00+09:00"],"areas":[{"area":{"name":"東京地方","code":"130010"},"weatherCodes":["111","111","202"],"weathers":["晴れ 夜遅く くもり","晴れ 夕方 から くもり","くもり 一時 雨"],
...

まあ普通のWebリクエストかなあと。要はAPI的に使える静的コンテンツとみるべきかなと。つまりは公式にAPIサービスと謳っていない以上は、仕様変更があっても自己責任でということです。まあ、これまでスクレイピングしてデータを取ってきていた人にとっては数段便利になったと思いますけどね。

エリアのコード(pathCode)は
http://www.jma.go.jp/bosai/common/const/area.json

コンテンツの種別は
http://www.jma.go.jp/bosai/common/const/contents.json

で取得できそうです。後はページのソースを読んで、ゴニョニョすればいろいろなデータを取得するURLが作れそうです。(人任せw)

@izutorishima 氏のTweetによりますと
天気予報(明後日まで・週間)https://www.jma.go.jp/bosai/forecast/data/overview_week/(pathCode).json
天気概況(明後日まで)
https://www.jma.go.jp/bosai/forecast/data/overview_forecast/(pathCode).json
天気概況(週間)
https://www.jma.go.jp/bosai/forecast/data/overview_week/(pathCode).json
アメダス
https://www.jma.go.jp/bosai/amedas/const/amedastable.json
https://www.jma.go.jp/bosai/amedas/data/map/(YYYYMMDDHH0000).json

データフォーマット表などは提供されていませんが、画面の表示値と突き合わせてみれば、なんとかなるのかなと。

【2021-2-25追記】

INTERNET watchの記事によると、気象庁情報基盤部のTOYODA Eizi氏(@e_toyoda)のTweetを紹介

「仕様の継続性や運用状況のお知らせを気象庁はお約束していないという意味で、APIではない」としながらも「政府標準利用規約に準拠してご利用いただけます」とコメントしている。

https://internet.watch.impress.co.jp/docs/yajiuma/1308/380/
という事で、データとしての利用は問題なさそうです。その一方、

検索サイトフレンドリーで無いというか、クローラーにはツラそうなURL/サイト構成ではあります。

技術・開発

Posted by tomi