Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/libthu/reserves-lib-tsinghua-downloader

Download pages from http://reserves.lib.tsinghua.edu.cn/
https://github.com/libthu/reserves-lib-tsinghua-downloader

Last synced: 4 days ago
JSON representation

Download pages from http://reserves.lib.tsinghua.edu.cn/

Awesome Lists containing this project

README

        

写在前面:Looking for maintainers. Please contact libthu (a) yandex.com if you are interested!

# 清华教参服务平台 辅助工具

![GitHub release (latest by date)](https://img.shields.io/github/v/release/libthu/reserves-lib-tsinghua-downloader) ![Python version](https://img.shields.io/badge/python-3.9%2B-blue) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/libthu/reserves-lib-tsinghua-downloader/release-test.yml?label=test) ![GitHub issues](https://img.shields.io/github/issues/libthu/reserves-lib-tsinghua-downloader)

Download pages from https://ereserves.lib.tsinghua.edu.cn/

下载书籍每一页的原图,生成 PDF,需要登录获取 Token 才能正常使用。

## Download

从 [Releases](https://github.com/libthu/reserves-lib-tsinghua-downloader/releases/latest) 的 `Assets` 中,下载对应系统的可执行文件。或运行 Python 脚本 `downloader.py`。

## Token

由于新版教参平台使用 SSO 单点登录,需要在自动打开的网页上自行登录并获得 Token 才能访问资源。**请放心程序不会访问和保存用户口令等个人敏感信息。**

![login.png](https://s2.loli.net/2024/09/13/xFezwadpABgl2tZ.png)

通过统一身份认证登录后,**请先不要关闭浏览器**,在程序中输入回车,程序将自动获取 Token。Token 将保存在同一目录下的 `token.txt` 文件中。

**Token 的有效期为 1 个小时,如果过期需要重新登录。**

## Usage

![bookinfo.png](https://s2.loli.net/2024/09/12/2dXCsKD4SMnu9ix.png)

运行 `downloader`,输入网站教参详情的地址(如图中标黄的位置)。程序会自动爬取对应书籍。

程序会将图片保存在 `clawed` 文件夹下,并自动生成 PDF。

![image.png](https://s2.loli.net/2023/02/28/JNfP4Sk7HuLhapz.png)

### macOS

macOS 用户可能无法直接运行下载的 `downloader`,可能有两种原因:

- 因为它没有“执行权限”。

解决方法:在终端中进入 `downloader` 文件所在的文件夹,执行 `chmod +x downloader` 命令。有关此命令的更多帮助请参阅 [Apple](https://support.apple.com/zh-cn/guide/terminal/apdd100908f-06b3-4e63-8a87-32e71241bab4/mac)。

- 因为它不是从 App Store 下载的。

解决方法:点击“**安全性与隐私**” -> “**通用**” -> “**仍要打开**”按钮来允许被阻止的 App。此按钮在您尝试打开该 App 后一小时内可用。更多帮助请参阅 [Apple](https://support.apple.com/zh-cn/guide/mac-help/mh40616/mac)。

## Q&A

**Q:** 图片压缩的 `quality` 选项应该怎样设置?

A: 范围 [1, 96]:其中 96 为不压缩(默认),[1, 95]从最差到最佳。更多信息请参见[PIL 文档](https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html?#jpeg)。

**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 中可以下载预览版的可执行文件。

## Advanced Settings

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
```

## TODO

- Translation
- Fetch pure text from the website
- PDF bookmark

## Contribution

请查看[`contribution.md`](/contribution.md)。

欢迎 Star/Issue/PR~

---

Use at your own risk.

友情链接:更多清华常用信息/服务汇总请看[这里](https://github.com/ZenithalHourlyRate/thuservices)。