#スクレイピング:Webサイトをローカルに保存
備忘録。バックアップ目的のみ。
太陽電磁波?太陽磁気嵐?のような世界的電源停止に備えて。microCMSにはバックアップ機能がないため実施。
###コード
import os
from urllib.request import *
# 記事カテゴリー毎のURL
#base_url = "https://benzoinfojapan.org/patients-article/"
#base_url = "https://benzoinfojapan.org/doctors-article/"
base_url = "https://benzoinfojapan.org/medias-article/"
# 保存先ファイル名接頭詞
#prefix = "patients-article"
#prefix = "doctors-article"
prefix = "medias-article"
num = 1
# 各カテゴリ記事上限値をwhile num <= Xに設定. 以下2020年10月現在値.
# patientsの場合10
# patientsの場合26
# patientsの場合13
# ↓↓
while num <= 13:
print("ダウンロード開始")
# HTMLファイル 保存先のディレクトリ
save_dir = os.path.dirname(os.path.abspath(__file__)) + "/html/"
# 存在しなければディレクトリ作成
if not os.path.exists(save_dir):
os.mkdir(save_dir)
url=base_url + str(num)
# 保存先ファイルのパス
num_str = str(num)
save_file = save_dir + prefix + num_str + ".html"
urlretrieve(url, save_file)
# doctors-articleの記事が22番目抜けてるので必要な処理^^;
if num != 11:
num += 1
else:
num += 2
※ エラー処理なし
###使い方
3つの各カテゴリーごとにパラメーターを変更して上記のコードを3回実行する。
変更箇所は以下のみっつ。
- base_url
- prefix
- while num <= xx: ← xxの数値を現在総記事数に。
###結果
ページ毎にHTMLファイルとしてローカルドライブに保存される。
以上。