スクレイピング:Webサイトをローカルに保存


スクレイピング: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ファイルとしてローカルドライブに保存される。

以上。