Python

【Python】Webページのファイルダウンロードを自動化してみる

takahide

おはようございます。タカヒデです。

「普段の定型業務を自動化したい…」

そんなことを思ったことありませんか?

思ったことなくとも、仕事をしていれば上司から同じようなことを言われることでしょう。

そんな自動化を実現するのが本日の記事です。

ということで本日は、「PythonでWebページのファイルダウンロードを自動化してみよう」そんな記事になります。

全く同じ環境ではないかと思いますが、是非参考にしてみてください。

【前提】今回実装したいこと

まずは今回実装したい内容を整理していきましょう。

今回の実装により「ボタン一つで以下の動作を自動で実行」したいと思います。

  1. ブラウザを起動
  2. 特定の記事ページにアクセス
  3. 「ダウンロード」リンクを探してクリック
  4. ダウンロードされた画像を指定したフォルダに保存

なお実務を考えると、銀行口座の明細データなどをダウンロードできるようにしたいところです。

しかし、ログイン認証等のハードルがあることから、今回は本ブログの別記事を活用します。

そのため、以下の「RPGを作成する記事から画像データをダウンロードする」という作業を自動化してみます。

あわせて読みたい
【Python】RPG(ロールプレイングゲーム)を作って解説してみた(初心者プログラミング)
【Python】RPG(ロールプレイングゲーム)を作って解説してみた(初心者プログラミング)

STEP1:フォルダ構成

まずはフォルダ構成から見ていきましょう。

今回は以下の構成にしています。

06_rpa_download/
├─ main.py ⇐自動化のコードが書かれたPythonファイル
├─ run.bat  ⇐実行ボタン
└─ output/  ⇐ダウンロード先のフォルダ

イメージとしては、「run.bat」を実行することで、「main.py」が実行され、「output」フォルダに自動でダウンロードされる流れです。

STEP2:ライブラリのインストール

続けて「playwright」というライブラリをインストールします。

この「playwright」はPythonからブラウザを自動操作するためのライブラリです。

ターミナル上で以下のコマンドを実行しましょう。

pip install playwright
playwright install

STEP3:Pythonコードの作成

続けて、Pythonで自動化のコードを記載していきます。

「main.py」を作成し、以下のコードを実装しましょう。

from pathlib import Path
from playwright.sync_api import sync_playwright

ARTICLE_URL = "https://it-newcomer.com/python-role-playing-game/"

BASE_DIR = Path(__file__).resolve().parent
OUTPUT_DIR = BASE_DIR / "output"
OUTPUT_DIR.mkdir(exist_ok=True)

with sync_playwright() as p:
    # ブラウザの起動
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()

    # 記事ページへのアクセス
    page.goto(ARTICLE_URL)

    # ダウンロードボタンのクリック
    with page.expect_download() as download_info:
        page.locator("a.wp-block-file__button[download][href*='tileset.png']").click()

    # 指定フォルダへの保存
    download = download_info.value
    save_path = OUTPUT_DIR / "tileset.png"
    download.save_as(save_path)

    print("ダウンロード完了")

    browser.close()

ポイントとなる部分だけ以下で解説しますね。

【ポイント】ダウンロードボタンのクリック処理を実装

今回のポイントは「Webページの中でどうやってダウンロードボタンを探すか」というところです。

以下のコードで実装しています。

    # ダウンロードボタンのクリック
    with page.expect_download() as download_info:
        page.locator("a.wp-block-file__button[download][href*='tileset.png']").click()

ここでは、指定したHTMLの要素を探しに行っています。

HTMLの要素を確認するために、クリックさせたいダウンロードボタンに対し、「右クリック→検証」を選択することで確認してみましょう。

すると↓こんな感じの要素が出てきているはずです。

<a href="https://it-newcomer.com/wp-content/uploads/2025/12/tileset.png" class="wp-block-file__button wp-element-button" download="" aria-describedby="wp-block-file--media-f150d3df-8d29-431e-bf93-bdb5eb4009e3">ダウンロード</a>

これを先ほどのコードで、

  • hrefにtileset.pngを含む
  • download属性が付いている
  • wp-block-file__buttonクラスを持つaタグ

この3つの条件を満たすものをクリックする、という処理を実装しています。

STEP4:.batファイルの作成

最後に、ボタン一つで動作するよう、「.bat」ファイルを作成します。

「.bat」ファイルではWindowsでコマンドを実行することができます。

「run.bat」ファイルを作成し、以下のコードを記載しましょう。

@echo off
cd /d %~dp0
python main.py
pause

これで「PythonでWebページのファイルダウンロードを自動化」という一連の作業は完成です。

【完成】実行してみよう

それでは実際に「run.bat」ファイルをダブルクリックで実行してみましょう。

すると、↓こんな感じでブラウザが自動的に開きます

実際に「output」フォルダを見に行くと、画像データがダウンロードされていることが分かります。

以上が「PythonでWebページのファイルダウンロードを自動化してみる」という記事でした。

このやり方を踏襲すれば、ログイン認証のない自社サイトや個人のページであれば自動化できるかと思います。

ぜひやってみてください。

お疲れさまでした。

ABOUT ME
タカヒデ
タカヒデ
ITを楽しく勉強中
通信会社の企画職で働く30代
非エンジニアでありながら半分趣味でITエンジニアリングやプログラミングを学習中
IT初心者が楽しいと思えるように発信することを目指しています
↓Xもやっているのでフォローしてね
記事URLをコピーしました