此脚本可帮助您从 Projekt Gutenberg 网站抓取图书 URL 列表,过滤掉不需要的 URL,并使用 epub2go 服务下载相应的 EPUB 文件。
我的一个朋友抱怨古腾堡项目将他们在商店中数字化的书籍的 ePub 文件隐藏在付费专区后面。他希望获得 ePub 格式的所有书籍,我决定实现这一目标,因为这些书籍已经可以轻松获得 HTML 版本。经过一番研究,我偶然发现了 epub2go 服务,它可以更轻松地将书籍从 HTML 转换为 ePub,而不需要本地依赖项和计算。
该脚本自动执行从 Projekt Gutenberg 下载书籍的过程,使用 epub2go 服务将其转换为 ePub 格式,并将转换后的文件存储到本地计算机*。
(*这目前非常难看,因为它只是将它们全部转储到脚本的工作目录中)
从 Projekt Gutenberg 中抓取书籍 URL
过滤掉不需要的 URL(不是书籍)
使用 epub2go 服务下载转换后的 ePub 文件
添加请求之间的延迟以避免服务过载
请按照以下步骤设置并运行脚本:
下载与您安装的 Chrome/Chromium 版本相匹配的适用于 Selenium 的最新 ChromeDriver。将二进制文件放在所需位置并更新代码中的路径。
下载并解压最新的 Google Chrome 或 Chromium 浏览器,以无头执行客户端 JavaScript。
使用 pip 安装所需的 Python 依赖项:
pip install -r 要求.txt
下载和转换之间的可配置延迟
并行下载以提高下载速度(有合理的限制以确保我们不会使 epub2go 过载)
提前抓取完整的作者姓名和书名,然后创建基于books/author/book_title
的目录结构,并将 ePub 文件放在其中