【Python】AppStoreランキングをAPIを利用して取得する
ISHI
ISHITECH
この記事では、PythonでYahoo!天気をスクレイピングしてデータ取得する方法について紹介します。
[jin_icon_pencil color=”#405796″ size=”12px”]行うこと
Yahoo!天気から今日の天気と明日の天気を取得する。
https://weather.yahoo.co.jp/weather/jp/13/4410.html
今回紹介するコードでは「requests」と「BeautifulSoup」を使用します。
pip install requests
pip install beautifulsoup4
import requests
from bs4 import BeautifulSoup
def GetYahooWeather(AreaCode):
"""
Yahoo天気予報をスクレイピングする関数。
Parameters
----------
AreaCode : str
対象となる数値を指定。
Returns
-------
str
"""
url = "https://weather.yahoo.co.jp/weather/jp/13/" + str(AreaCode) + ".html"
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
rs = soup.find(class_='forecastCity')
rs = [i.strip() for i in rs.text.splitlines()]
rs = [i for i in rs if i != ""]
return rs[0] + "の天気は" + rs[1] + "、明日の天気は" + rs[19] + "です。"
GetYahooWeather("4410")
print(GetYahooWeather("4410"))
>> 9月7日(水)の天気は曇のち雨、明日の天気は曇一時雨です。
https://weather.yahoo.co.jp/weather/jp/13/AreaCode.html
AreaCodeがYahoo!天気内での地域コードとなります。(地域コードの一覧は本記事最後にまとめています)
サンプルコードを実行すると変数rsに下記画像のデータが格納されます。
rs[0]~rs[35]で好きな項目を取得することが出来ます。
都道府県 | 地域 | コード |
北海道 | 稚内 | 1100 |
旭川 | 1200 | |
留萌 | 1300 | |
札幌 | 1400 | |
岩見沢 | 1500 | |
倶知安 | 1600 | |
網走 | 1710 | |
北見 | 1720 | |
紋別 | 1730 | |
根室 | 1800 | |
釧路 | 1900 | |
帯広 | 2000 | |
室蘭 | 2100 | |
浦河 | 2200 | |
函館 | 2300 | |
江差 | 2400 | |
青森 | 青森 | 3110 |
むつ | 3120 | |
八戸 | 3130 | |
岩手 | 盛岡 | 3310 |
宮古 | 3320 | |
大船渡 | 3330 | |
宮城 | 仙台 | 3410 |
白石 | 3420 | |
秋田 | 秋田 | 3210 |
横手 | 3220 | |
山形 | 山形 | 3510 |
米沢 | 3520 | |
酒田 | 3530 | |
新庄 | 3540 | |
福島 | 福島 | 3610 |
小名浜 | 3620 | |
若松 | 3630 | |
茨城 | 水戸 | 4010 |
土浦 | 4020 | |
栃木 | 宇都宮 | 4110 |
大田原 | 4120 | |
群馬 | 前橋 | 4210 |
みなかみ | 4220 | |
埼玉 | さいたま | 4310 |
熊谷 | 4320 | |
秩父 | 4330 | |
千葉 | 千葉 | 4510 |
銚子 | 4520 | |
館山 | 4530 | |
東京 | 東京 | 4410 |
大島 | 4420 | |
八丈島 | 4430 | |
父島 | 4440 | |
神奈川 | 横浜 | 4610 |
小田原 | 4620 | |
新潟 | 新潟 | 5410 |
長岡 | 5420 | |
高田 | 5430 | |
相川 | 5440 | |
富山 | 富山 | 5510 |
伏木 | 5520 | |
石川 | 金沢 | 5610 |
輪島 | 5620 | |
福井 | 福井 | 5710 |
敦賀 | 5720 | |
山梨 | 甲府 | 4910 |
河口湖 | 4920 | |
長野 | 長野 | 4810 |
松本 | 4820 | |
飯田 | 4830 | |
岐阜 | 岐阜 | 5210 |
高山 | 5220 | |
静岡 | 静岡 | 5010 |
網代 | 5020 | |
三島 | 5030 | |
浜松 | 5040 | |
愛知 | 名古屋 | 5110 |
豊橋 | 5120 | |
三重 | 津 | 5310 |
尾鷲 | 5320 | |
滋賀 | 大津 | 6010 |
彦根 | 6020 | |
京都 | 京都 | 6110 |
舞鶴 | 6120 | |
大阪 | 大阪 | 6200 |
兵庫 | 神戸 | 6310 |
豊岡 | 6320 | |
奈良 | 奈良 | 6410 |
風屋 | 6420 | |
和歌山 | 和歌山 | 6510 |
潮岬 | 6520 | |
鳥取 | 鳥取 | 6910 |
米子 | 6920 | |
島根 | 松江 | 6810 |
浜田 | 6820 | |
西郷 | 6830 | |
岡山 | 岡山 | 6610 |
津山 | 6620 | |
広島 | 広島 | 6710 |
庄原 | 6720 | |
山口 | 下関 | 8110 |
山口 | 8120 | |
柳井 | 8130 | |
萩 | 8140 | |
徳島 | 徳島 | 7110 |
日和佐 | 7120 | |
香川 | 高松 | 7200 |
愛媛 | 松山 | 7310 |
新居浜 | 7320 | |
宇和島 | 7330 | |
高知 | 高知 | 7410 |
室戸岬 | 7420 | |
清水 | 7430 | |
福岡 | 福岡 | 8210 |
八幡 | 8220 | |
飯塚 | 8230 | |
久留米 | 8240 | |
佐賀 | 佐賀 | 8510 |
伊万里 | 8520 | |
長崎 | 長崎 | 8410 |
佐世保 | 8420 | |
厳原 | 8430 | |
福江 | 8440 | |
熊本 | 熊本 | 8610 |
阿蘇乙姫 | 8620 | |
牛深 | 8630 | |
人吉 | 8640 | |
大分 | 大分 | 8310 |
中津 | 8320 | |
日田 | 8330 | |
佐伯 | 8340 | |
宮崎 | 宮崎 | 8710 |
延岡 | 8720 | |
都城 | 8730 | |
高千穂 | 8740 | |
鹿児島 | 鹿児島 | 8810 |
鹿屋 | 8820 | |
種子島 | 8830 | |
名瀬 | 8840 | |
沖縄 | 那覇 | 9110 |
名護 | 9120 | |
久米島 | 9130 | |
南大東 | 9200 | |
宮古島 | 9300 | |
石垣島 | 9410 | |
与那国島 | 9420 |