Python プログラミング

【Python】Yahoo天気予報をスクレイピングしてデータを入手する

皆さんこんにちは。いし(@ishilog2)です。

今回はPythonを用いて、Yahoo天気からデータ取得したいと思います。

スクレイピングが禁止されているWEBページもあるのでお気を付けください。

事前準備

今回のサンプルではrequestsとBeautifulSoupを使用します。
インストールしていない方はインストールして下さい。

実践

実施すること

Yahoo天気予報から本日の天気と明日の天気を取得します。
https://weather.yahoo.co.jp/weather/jp/13/4410.html

サンプルコード

解説

① requestsを用いてHTMLを取得
requests.get('URL')でHTML情報を習得します。

② BeautifulSoupを使用してhtml形式にパース
①で習得したHTMLからBeautifulSoupオブジェクトを作成します。

パース(parse)とは

自分の環境で扱えるように解析、変換することをparseと言います。そしてパースする処理をまとめたプログラムのことをパーサー(parser)といいます。今回使用しているBeautifulSoupはこのパーサーとなります。

③ forecastCityクラスの文字列を取得

③ 取得した内容をリストに格納

リスト内表記を使用して、習得したデータをリストに格納・リスト内の要素の前後にある空白を削除します。splitlines()で改行コードで分割して、strip()で空白を削除します。

習得したデータがリストに格納されました。ただこれだと見づらいのでリスト内の空白要素を削除します

0日(水)', '曇り', '26℃[0]', '21℃[+1]', '時間', '0-6', '6-12', '12-18', '18-24', '降水', '10%', '10%', '20%', '20%', '風:', '北の風後東の風', '波:', '0.5メートル']
③ リストからデータを取り出す

リストから取り出すには変数[要素の箇所]となります。リスト内の要素は左から0始まりでアクセスできます。
今回の場合の各要素の場所は次の画像を参考にして下さい。

【おまけ】地域コード表

都道府県 地域 コード
北海道 稚内 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

 

-Python, プログラミング
-,

© 2021 IshiLog.com Powered by AFFINGER5