DX World DXPediton Timeline

cluster

Thursday, February 1, 2024

FCZ誌とCirQ誌のダウンロード

ex JH1FCZ 故 大久保OMが発行されていたFCZ誌とCirQ誌が、有志の
方々によって電子データとして以下のURLで公開されていることを
ご存じの方は多いと思います。

http://momo.gmobb.jp/fcz_ac1/

http://momo.gmobb.jp/fcz_ac2/

しかし、多数のファイルをポチポチとダウンロードするのは手間が
かかりますので、Pythonで自動ダウンロードするプログラムを書き
ました。私の書いたものはちょっとダサいものですが、1回動かせば
もう動かすことはほぼないプログラムですので、気の利いたコーディ
ングにするモチベーションもあがりません。作りっぱなしのプログラ
ムそのままでの公開です。

以下のプログラムをコピーして、ウインドウズのメモ帳などにペース
トして。適当なプログラム名に拡張子として".py"を付けて(例えば、
fcz_download.pyというファイル名で)、pdfファイルをダウンロード
するフォルダに保存しておきます。

プログラムをダブルクリックすれば、pdfファイルのダウンロードが
始まります。

プログラムの中心部分は下のページからの借用です。このプログラム
は素晴らしいものです。

https://degitalization.hatenablog.jp/entry/2020/08/02/193536

準備
(1) Pythonのインストール
(2) コンソール画面でpy -m pip install beautifulsoup4と入力して
beautifulsoupをインストールする。
(3) py -m pip install urllibと入力してurllibをインストールする。

# ---- プログラム本体はここから下 ----
from bs4 import BeautifulSoup
import urllib.request as req
import urllib
base_url1 = "http://momo.gmobb.jp/fcz_ac1/"
url1 = base_url1 + "001-050.htm"
url2 = base_url1 + "051-100.html"
url3 = base_url1 + "101-150.htm"
url4 = base_url1 + "151-200.htm"
base_url2 = "http://momo.gmobb.jp/fcz_ac2/"
url5 = base_url2 + "175-200.htm"
url6 = base_url2 + "201-250.htm"
url7 = base_url2 + "251-300.html"
url8 = base_url2 + "cirq_contents.htm"
def download(URL):
    link_list =[]
    for link in result:
        href = link.get("href")
        link_list.append(href)
    pdf_list = [temp for temp in link_list if temp.endswith('pdf')]
    for filename in pdf_list:
        urlData = URL + urllib.parse.quote(filename)
        new_filename = filename[filename.find("/")+1:]
        #print(filename)
        #print(urlData)
        print(new_filename)
        data = req.urlopen(urlData).read()
        with open(new_filename, mode="wb") as f:
            f.write(data)
for url in [url1, url2, url3, url4]:
    res = req.urlopen(url)
    soup = BeautifulSoup(res, "html.parser")
    result = soup.select("a[href]")
    download(base_url1)
for url in [url5, url6, url7, url8]:
    res = req.urlopen(url)
    soup = BeautifulSoup(res, "html.parser")
    result = soup.select("a[href]")
    download(base_url2)