# Pythonで温泉名・URL一覧を自動取得しExcel出力する手順(初学者向け)
この手順では「ニフティ温泉まとめページ」から温泉名とURLを自動取得し、Excelファイルに出力する方法を、初学者にもわかりやすく解説します。
—
## ステップ1:Pythonの準備
### 1-1. Pythonをインストール
– 公式サイト(https://www.python.org/)からPython 3.xをインストールしてください。
– インストール時に「Add Python to PATH」にチェックを入れると便利です。
### 1-2. 必要なライブラリをインストール
コマンドプロンプト(またはPowerShell)で以下を実行します:
“`sh
pip install requests beautifulsoup4 pandas openpyxl
“`
—
## ステップ2:スクリプトの作成
### 2-1. コードを用意
エディタで `matsuyamaOnsenURL.py` というファイルを作成し、以下のコードを貼り付けます。
“`python
import requests
from bs4 import BeautifulSoup
import pandas as pd
def get_onsen_name_url():
url = ‘https://onsen.nifty.com/onsen-matome/230123438155/’
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”}
res = requests.get(url, headers=headers)
res.encoding = res.apparent_encoding
soup = BeautifulSoup(res.text, ‘html.parser’)
onsen_list = []
main = soup.find(‘div’, id=’mainText’)
if not main:
print(‘mainTextが見つかりません’)
return []
h3s = main.find_all(‘h3’)
for h3 in h3s:
name = h3.get_text(strip=True)
a = h3.find_next_sibling(‘div’)
if a:
a_tag = a.find(‘a’, href=True)
if a_tag:
href = a_tag[‘href’]
if href and not href.startswith(‘http’):
href = ‘https://onsen.nifty.com’ + href
print(f”{name}: {href}”)
onsen_list.append([name, href])
if not onsen_list:
print(‘温泉情報が取得できませんでした。’)
return onsen_list
def save_to_excel(onsen_list, filename):
df = pd.DataFrame(onsen_list, columns=[“温泉名”, “URL”])
df.to_excel(filename, index=False)
if __name__ == ‘__main__’:
onsen_list = get_onsen_name_url()
save_to_excel(onsen_list, ‘松山市_温泉URL一覧.xlsx’)
“`
—
## ステップ3:スクリプトの実行
コマンドプロンプト(またはPowerShell)で、スクリプトのあるフォルダに移動し、以下を実行します:
“`sh
python matsuyamaOnsenURL.py
“`
—
## ステップ4:Excelファイルの確認
同じフォルダに `松山市_温泉URL一覧.xlsx` というExcelファイルが生成されます。
– ファイルを開くと、温泉名とURLの一覧が確認できます。
—
## 注意事項
– サイト構造が変わると取得できなくなる場合があります。その場合はHTMLを再確認し、セレクタ部分を修正してください。
– サイトによってはBot対策でアクセス制限されることがあります。
– 取得したデータの商用利用や大量アクセスは、各サイトの利用規約を必ずご確認ください。
– Excel出力には `openpyxl` ライブラリが必要です。
—
## よくあるトラブルと対策
– 「温泉情報が取得できませんでした」と表示される場合:
– サイト構造が変わっている可能性があります。
– インターネット接続やURLのスペルミスも確認してください。
– `ModuleNotFoundError` などのエラーが出る場合:
– 必要なライブラリがインストールされているか再確認してください。
—
これで、Pythonによる温泉名・URL一覧の自動取得とExcel出力ができます!
コメントを残す