Skip to content

Commit

Permalink
feat: add wenku8 support
Browse files Browse the repository at this point in the history
  • Loading branch information
wdpm committed Oct 21, 2023
1 parent c81b05a commit c462fa9
Show file tree
Hide file tree
Showing 14 changed files with 2,646 additions and 304 deletions.
83 changes: 50 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
```diff
+ 🚀 真白萌小说站 https://masiro.me 已经得到支持 🚀
+ 🚩 轻小说文库 https://www.wenku8.net/login.php 已经得到支持 🚩
```

# linovelib2epub

Crawl light novel from [哔哩轻小说(linovelib)](https://w.linovelib.com/) and convert to epub.
Crawl light novel from [哔哩轻小说 (linovelib)](https://w.linovelib.com/) and convert to epub.

[![Hatch project](https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg?style=flat)](https://github.com/pypa/hatch)
[![flake8](https://img.shields.io/badge/linter-flake8-brightgreen)](https://github.com/PyCQA/flake8)
Expand Down Expand Up @@ -36,25 +37,27 @@ Crawl light novel from [哔哩轻小说(linovelib)](https://w.linovelib.com/) an

## Supported Websites (plan)

| 序号 | 网站名称 | 语言 | 爬虫难度 | 支持进度 | 备注 | 技术难点 |
|-----|----------------------------------------------|-----|------|-------------------------------------|------------------------|--------------------------------|
| 1 | [哔哩轻小说(Mobile)](https://w.linovelib.com/) |/| 中😰 | <img src="./merrli.png" width="36"> | `不用登录` `一章多页` | `JS加密` `章节链接破损` `Cloudflare保护` |
| 2 | ~~[哔哩轻小说(Web)](https://www.linovelib.com/)~~ |/| 中😰 | 🚫 | 资源同Mobile,没必要。 | N/A |
| 3 | ~~[轻之国度](https://www.lightnovel.us/)~~ |/| 高🤣 | 🚫 | `需要登录` | `轻币门槛` `导航混乱` |
| 4 | [无限轻小说](https://www.8novel.com/) || 中😰 || `不用登录` `一章多页` ||
| 5 | [轻小说文库](https://www.wenku8.net/) |/| 中😰 | WIP | `不用登录` `一章一页` ||
| 6 | ~~[轻小说百科](https://lnovel.org/)~~ |/| 低😆 | 🚫 | `不用登录` `一章一页` `插图清晰度低` | N/A |
| 7 | [真白萌](https://masiro.me/admin/novels ) |/| 中😰 | <img src="./merrli.png" width="36"> | `一章一页` | `需要登录` `积分购买` `等级限制` |
| 序号 | 网站名称 | 语言 | 爬虫难度 | 支持进度 | 备注 | 技术难点 |
|-----|----------------------------------------------|-------|------|-------------------------------------|------------------------------|--------------------------------------|
| 1 | [哔哩轻小说(Mobile)](https://w.linovelib.com/) | / | 中😰 | <img src="./merrli.png" width="36"> | ` 不用登录 ` ` 一章多页 ` | `JS 加密 ` ` 章节链接破损 ` `Cloudflare 保护 ` |
| 2 | ~~[哔哩轻小说(Web)](https://www.linovelib.com/)~~ | / | 中😰 | 🚫 | 资源同 Mobile,没必要。 | N/A |
| 3 | ~~[轻之国度](https://www.lightnovel.us/)~~ | / | 高🤣 | 🚫 | ` 需要登录 ` | ` 轻币门槛 ` ` 导航混乱 ` |
| 4 | [无限轻小说](https://www.8novel.com/) | | 中😰 || ` 不用登录 ` ` 一章多页 ` ||
| 5 | [轻小说文库](https://www.wenku8.net/) | / | 中😰 | <img src="./merrli.png" width="36"> | ` 不用登录 ` ` 一章一页 ` ||
| 6 | ~~[轻小说百科](https://lnovel.org/)~~ | / | 低😆 | 🚫 | ` 不用登录 ` ` 一章一页 ` ` 插图清晰度低 ` | N/A |
| 7 | [真白萌](https://masiro.me/admin/novels) | / | 中😰 | <img src="./merrli.png" width="36"> | ` 一章一页 ` | ` 需要登录 ` ` 积分购买 ` ` 等级限制 ` |

> 爬虫友好度有两个重要指标:
> - 1.访问门槛。是否需要登陆以及积分。
> - 2.页面结构。一个章节多页渲染的视为中等难度。
> -
1. 访问门槛。是否需要登陆以及积分。
> -
2. 页面结构。一个章节多页渲染的视为中等难度。

优质的轻小说目标源标准:资源丰富,更新迅速,插图清晰,爬虫门槛合理。可以在issue发起补充
优质的轻小说目标源标准:资源丰富,更新迅速,插图清晰,爬虫门槛合理。可以在 issue 发起补充

其他代码参考:

- 真白萌/轻之国度/百合会旧站参考:https://github.com/ilusrdbb/lightnovel-pydownloader
- 真白萌 / 轻之国度 / 百合会旧站参考:https://github.com/ilusrdbb/lightnovel-pydownloader
- bilinovel/wenku8 参考:https://github.com/Montaro2017/bili_novel_packer

## Installation
Expand Down Expand Up @@ -93,7 +96,7 @@ python -m pip install -e .

### install from pypi

> 注意: 由于爬虫程序对时效非常敏感,而pypi发布的版本一般是滞后的,因此不推荐这种安装方式。
> 注意: 由于爬虫程序对时效非常敏感,而 pypi 发布的版本一般是滞后的,因此不推荐这种安装方式。
1. Install this package from pypi:

Expand Down Expand Up @@ -173,26 +176,40 @@ MASIRO_LOGIN_PASSWORD = '<your-masiro-password>'
- 如果当前挑选的所有章节都是免费积分,或者你之前已经全部购买过,那么程序会直接往下执行。
- 如果当前挑选的所有章节存在需要积分购买的情况,程序会再次提示,要求做出选择,此时可以选择退出或者选择继续。

### Wenku8

> target site: https://www.wenku8.net
```python
from linovelib2epub import Linovelib2Epub, TargetSite

if __name__ == '__main__':
linovelib_epub = Linovelib2Epub(book_id=2961, target_site=TargetSite.WENKU8)
linovelib_epub.run()
```

Don't need login, no threshold.

## Options

| Parameters | type | required | default | description |
|-------------------------|---------|----------|-------------------------------|-------------------------------------------------------------------------------|
| book_id | number | YES | None | 书籍ID。 |
| target_site | Enum | NO | `TargetSite.LINOVELIB_MOBILE` | 参阅 TargetSite python 枚举类。当前可用值: TargetSite.LINOVELIB_MOBILE、TargetSite.MASIRO |
| divide_volume | boolean | NO | False | 是否分卷 |
| select_volume_mode | boolean | NO | False | 选择卷模式,它为True时 divide_volume 强制为True。 |
| has_illustration | boolean | NO | True | 是否下载插图 |
| image_download_folder | string | NO | "novel_images" | 图片下载临时文件夹. 不允许以相对路径../开头。 |
| pickle_temp_folder | string | NO | "pickle" | pickle临时数据保存的文件夹。 |
| clean_artifacts | boolean | NO | True | 是否删除临时数据/工件,指的是pickle和下载的图片文件。 |
| http_timeout | number | NO | 10 | 一个HTTP请求的超时等待时间(秒)。代表connect和read timeout。 |
| http_retries | number | NO | 5 | 当一个HTTP请求失败后,重试的最大次数。 |
| http_cookie | string | NO | '' | 自定义HTTP cookie。 |
| custom_style_cover | string | NO | '' | 自定义cover.xhtml的样式 |
| custom_style_nav | string | NO | '' | 自定义nav.xhtml的样式 |
| custom_style_chapter | string | NO | '' | 自定义每章(?.xhtml)的样式 |
| disable_proxy | boolean | NO | True | 是否禁用所在的代理环境,默认禁用 |
| image_download_strategy | string | NO | 'ASYNCIO' | 枚举值:"ASYNCIO"、"MULTIPROCESSING"、"MULTITHREADING"(未实现) |
| Parameters | type | required | default | description |
|-------------------------|---------|----------|-------------------------------|-------------------------------------------------------|
| book_id | number | YES | None | 书籍 ID。 |
| target_site | Enum | NO | `TargetSite.LINOVELIB_MOBILE` | 其他可用值参阅 TargetSite python 枚举类以及使用文档 |
| divide_volume | boolean | NO | False | 是否分卷 |
| select_volume_mode | boolean | NO | False | 选择卷模式,它为 True 时 divide_volume 强制为 True。 |
| has_illustration | boolean | NO | True | 是否下载插图 |
| image_download_folder | string | NO | "novel_images" | 图片下载临时文件夹. 不允许以相对路径../ 开头。 |
| pickle_temp_folder | string | NO | "pickle" | pickle 临时数据保存的文件夹。 |
| clean_artifacts | boolean | NO | True | 是否删除临时数据 / 工件,指的是 pickle 和下载的图片文件。 |
| http_timeout | number | NO | 10 | 一个 HTTP 请求的超时等待时间 (秒)。代表 connect 和 read timeout。 |
| http_retries | number | NO | 5 | 当一个 HTTP 请求失败后,重试的最大次数。 |
| http_cookie | string | NO | '' | 自定义 HTTP cookie。 |
| custom_style_cover | string | NO | '' | 自定义 cover.xhtml 的样式 |
| custom_style_nav | string | NO | '' | 自定义 nav.xhtml 的样式 |
| custom_style_chapter | string | NO | '' | 自定义每章 (?.xhtml) 的样式 |
| disable_proxy | boolean | NO | True | 是否禁用所在的代理环境,默认禁用 |
| image_download_strategy | string | NO | 'ASYNCIO' | 枚举值:"ASYNCIO"、"MULTIPROCESSING"、"MULTITHREADING"(未实现) |

## Todo

Expand Down
Loading

0 comments on commit c462fa9

Please sign in to comment.