このスクリプトは、Projekt Gutenberg Web サイトから書籍の URL のリストを収集し、不要な URL を除外し、epub2go サービスを使用して対応する EPUB ファイルをダウンロードするのに役立ちます。
私の友人は、Projekt Gutenberg がデジタル化した書籍の ePub ファイルをペイウォールの後ろのストアに隠していることについて不満を述べました。彼はすべての書籍を ePub 形式で入手したいと考えていました。書籍はすでに HTML で簡単に入手できるため、私はそれを実現することにしました。いくつか調べた結果、ローカルの依存関係や計算を必要とせずに、書籍を HTML から ePub に簡単に変換できる epub2go サービスを見つけました。
このスクリプトは、Projekt Gutenberg から書籍をダウンロードするプロセスを自動化し、epub2go サービスを使用して書籍を ePub 形式に変換し、変換されたファイルをローカル マシン* に保存します。
(*これは、スクリプトの作業ディレクトリにすべてをダンプするだけなので、現時点ではかなり見苦しいです)
Projekt Gutenberg から本の URL をスクレイピング
不要な URL (書籍ではない) を除外する
epub2go サービスを使用して変換された ePub ファイルをダウンロードします
サービスの過負荷を避けるためにリクエスト間に遅延を追加します
スクリプトを設定して実行するには、次の手順に従います。
インストールされている Chrome/Chromium バージョンと一致する最新の Selenium 用 ChromeDriver をダウンロードします。バイナリを目的の場所に配置し、コード内のパスを更新します。
クライアント側 JavaScript をヘッドレスで実行するには、最新の Google Chrome または Chromium ブラウザをダウンロードして解凍します。
pip を使用して、必要な Python 依存関係をインストールします。
pip install -r 要件.txt
ダウンロードと変換の間の遅延を構成可能
ダウンロード速度を上げるためのダウンロードの並列化 (epub2go に過負荷がかからないよう適切な制限を設けています)
事前に完全な著者名と本のタイトルをスクレイピングし、 books/author/book_title
に基づいてディレクトリ構造を作成し、そこに ePub ファイルを配置します。