#この記事では.
旅行などで検索サイトを使わない場合などにwikiやお国のサイトを使うが、
プレーンなhtmlに情報が張り付いているので検索が面倒。
こういうやつ。
https://www.env.go.jp/water/yusui/result/sub4-2/PRE13-4-2.html
ということで、スクレイピングして自分で検索可能なものを作る際にデータを抜き出すときのメモ。
htmlのテーブルならヘッダも含めてループしてcsvにしておく。(今回特殊なヘッダなので手で作ったけど、、)
あと、コードはurl固定だけど、PRE{都道府県コード}の引数を与えれば全都道府県を一回でcsvにすることが可能。
都道府県コードは別ページにあった。
#スクレイピングのコード
import requests
from bs4 import BeautifulSoup
import csv
# アクセスするURL
url = 'https://www.env.go.jp/water/yusui/result/sub4-2/PRE13-4-2.html'
# reqest and parse
response = requests.get(url)
response = BeautifulSoup(response.content, 'html.parser')
# テーブル情報を取得
table = response.findAll('table')
rows = response.findAll('tr')
# csvデータ作成
csvFile = open("ebooks2.csv", 'wt', newline = '', encoding = 'utf-8')
writer = csv.writer(csvFile)
# ヘッダーが二重になっていて取り出すのが面倒なのでここは記載してしまう
csvItem = ['回答市区町村名','名称','ふりがな','所在地','概要等','アクセス制限','湧水保全活動','湧水写真・位置図']
writer.writerow(csvItem)
# ここからが1行ごとの処理
for row in rows :
# 項目ずつlist.append
csvItem = []
for cell in row.findAll('td'):
csvItem.append(cell.text)
# ヘッダもこのループ内なので項目がない場合は無視
if len(csvItem) > 0:
writer.writerow(csvItem)
csvFile.close()
#参考
ほぼほぼ以下をコピペで使ってます.
https://qiita.com/hujuu/items/b0339404b8b0460087f9
誰かが作ったapiサービス
https://springwaterapi.docs.apiary.io/#