バッチファイルでファイル名が連番のURLから一括でダウンロードする方法【HTML5 Webook】

目的

ここでは題にもある通り、ある複数のURLからファイルをダウンロードしたいとき、

またそのファイル名が連番であるときに一括でそのファイルをダウンロードするバッチファイルを作ってみた。

このバッチファイルは私のサイトにアップロードされているテスト用のPDF(ファイル名の数字を変更すれば確認可能)が1~10枚ダウンロードされる仕組み

コードは下記からダウンロード可能

背景

妹に約260枚のPDFを印刷したいと言われた。
てっきり、一つのPDFファイルに260枚入ってるのかと思ったら、「HTML5-Webook」というサービスでまるでカタログのように閲覧できるようになっていた。

「すごく見やすいじゃん!!」と感動したのもつかの間、、

印刷ボタンを押すとその開いてるページ(見開き2ページ)しか印刷できないのだ!
どうやら1つのPDFファイルに1枚しか入っておらず、それがサービスによって纏められていた
(もう嫌な予感しかしない)

さすがに手作業でダウンロードするわけにもいかないのでバッチファイルを書くことにした。

作成したバッチファイル

バッチファイルについて

今回はバッチファイルについてや使用方法などには触れずにいこうとおもう。
初心者の方は下記のサイトがとても詳しくわかりやすいので参考にしてみてはいかがだろうか

  【Windows 10対応】Windowsのバッチファイルの基本的な使い方

Zipファイルのディレクトリ構成

Zipファイルをデスクトップで解凍することを想定しています。
使い方は後述します。

Desktop — download-pdf — pdf
             |
             |– download_pdf.bat

コード全体

使い方

  1. ダウンロードしたZipファイルをデスクトップに解凍してください
  2. download_pdf.bat というファイルを選択して、右クリックし編集(E)を選択
    (エディタがある方はそちらで)

ダウンロードしたファイルを編集ことにより、このような警告が出た場合は詳細情報を選択し、実行ボタンを押す。

  1. するとメモ帳が開きますので、ここで編集していきます。
  2. ダウンロードを行うURLを確認します。
    *URLの複数のファイル名が規則的に連番である必要があります!
    https://talk-to-myself.com/wp-content/uploads/2020/04/1.pdf
    https://talk-to-myself.com/wp-content/uploads/2020/04/2.pdf
    https://talk-to-myself.com/wp-content/uploads/2020/04/3.pdf
  3. 上記の例のURLをみてわかる通り”https://ta~2020/04/”まで同じです。
    この同じ部分を9行目のように記述します。
記述方法 :
set url_location=(変わらない部分のURL)
例 :
set url_location=https://talk-to-myself.com/wp-content/uploads/2020/04/
  1. ダウンロードするページ範囲を14行目のように書きます
    下の例だと1~5まで1枚ずつ(0枚飛ばし)でダウンロードします。
記述方法 :
for /l %%n in (初めのページ,ページの間隔,最後のページ) do (
例 :
for /l %%n in (1,1,10) do (
  1. URLの変化する部分について18行目に書いてます。
記述方法 :
set url=%url_location%!num!(変わらない部分)
例 :
set url=%url_location%!num!.pdf

ここが少しややこしいのですが簡単に説明すると下の図のようになります。
・ %url_location% : 変わらない部分のURL
・ !num! : 変わる部分のURLでさっき指定した数になります。(1~5)

URLの変わる部分と変わらない部分を分けて置き換えてるようなイメージですね。
“.pdf”は変わらないのでそのまま書いています。
もし、https://talk-to-myself.com/wp-content/uploads/2020/04/page-1-page.pdfのようなURLだったら

例 :
set url=%url_location%page-!num!-page.pdf

というように書けばいいですね

  1. 上書き保存をしてバッチファイルの編集は終わりです。
  2. 今度はdownload_pdf.batをダブルクリックで実行します。
  3. pdfというフォルダにpdfファイルが格納されてれば成功です。

コードの中身が気になる方は下記に簡単にまとめておきました。

コードの説明

特定のURLからダウンロードするコマンドの書き方

記述方法 :
bitsadmin /transfer <ジョブ名> <URL> <保存場所>

・ジョブ名 : 何でもよい、わかりやすいもの
・URL : ダウンロード元のURL
・保存場所 : フルパスでの記述 C:/Users/username/Desktop/ みたいな感じで

今回は下記のように記述

・ジョブ名 : pdf  ・URL : !url!  ・保存場所 : “!file!”

例 :
bitsadmin /transfer pdf !url! “!file!”
[!url!]と[“!file!”]は遅延環境変数と呼ばれるもの
説明がややこしくなるので単なる変数(値を入れる箱)だと思ってよい

変数の定義

記述方法 :
set location=(変数 : 変わらないURL部分)
例 :
set location=%homedrive%%homepath%/Desktop/download-pdf/pdf/

コメント

記述方法 :
rem (コメント)

コメントを残す