写在前面:Looking for maintainers. Please contact libthu (a) yandex.com if you are interested!
Download pages from https://ereserves.lib.tsinghua.edu.cn/
下载书籍每一页的原图,生成 PDF,需要登录获取 Token 才能正常使用。
从 Releases 的 Assets
中,下载对应系统的可执行文件。或运行 Python 脚本 downloader.py
。
由于新版教参平台使用 SSO 单点登录,需要在自动打开的网页上自行登录并获得 Token 才能访问资源。请放心程序不会访问和保存用户口令等个人敏感信息。
通过统一身份认证登录后,请先不要关闭浏览器,在程序中输入回车,程序将自动获取 Token。Token 将保存在同一目录下的 token.txt
文件中。
Token 的有效期为 1 个小时,如果过期需要重新登录。
运行 downloader
,输入网站教参详情的地址(如图中标黄的位置)。程序会自动爬取对应书籍。
程序会将图片保存在 clawed
文件夹下,并自动生成 PDF。
macOS 用户可能无法直接运行下载的 downloader
,可能有两种原因:
-
因为它没有“执行权限”。
解决方法:在终端中进入
downloader
文件所在的文件夹,执行chmod +x downloader
命令。有关此命令的更多帮助请参阅 Apple。 -
因为它不是从 App Store 下载的。
解决方法:点击“安全性与隐私” -> “通用” -> “仍要打开”按钮来允许被阻止的 App。此按钮在您尝试打开该 App 后一小时内可用。更多帮助请参阅 Apple。
Q: 图片压缩的 quality
选项应该怎样设置?
A: 范围 [1, 96]:其中 96 为不压缩(默认),[1, 95]从最差到最佳。更多信息请参见PIL 文档。
Q: 运行时报错 'type' object is not subscriptable
,怎么办?
A: 请升级 Python 版本至 3.9+,或直接运行分发的可执行文件。
Q: 下载突然失败了?
A: 目前学校对教参平台的访问添加了速率限制,短时间内多次爬取会暂时 ban IP,请过一段时间重试。设置相邻请求的间隔时间可以使用 -i seconds
来设置。
Q: 分享一些高级玩法?
- 使用学校提供的正版福昕编辑器可以对 PDF 进行 OCR。
- Z-Library 无法正常访问,使用谷歌搜索
zlib searcher
有惊喜。 - 从 GitHub Actions 中可以下载预览版的可执行文件。
Run downloader --help
in terminal.
usage: downloader.py [-h] [-v] [-u URL] [-c C] [-i I] [-q Q] [-r] [-e] [--no-pdf] [--no-img]
See README.md for help. Repo: https://github.com/libthu/reserves-lib-tsinghua-downloader
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-u URL, --url URL input URL
-c C, --concurrent C the number of concurrent downloads (4 by default)
-i I, --interval I the time interval between batchs, in seconds (0.5 by default)
-q Q, --quality Q the image quality, from 0 (worst) to 95 (best). 96 keeps images unchanged.
-r, --resume skip downloading images
-e, --exit exit automatically when done
--no-pdf do not generate PDF
--no-img do not save images
- Translation
- Fetch pure text from the website
- PDF bookmark
请查看contribution.md
。
欢迎 Star/Issue/PR~
Use at your own risk.
友情链接:更多清华常用信息/服务汇总请看这里。