https://github.com/carter-ya/novel
网络小说下载器,网络小说章节列表,正文抓取API
https://github.com/carter-ya/novel
httpclient java java8 novel novel-downloader
Last synced: 6 months ago
JSON representation
网络小说下载器,网络小说章节列表,正文抓取API
- Host: GitHub
- URL: https://github.com/carter-ya/novel
- Owner: carter-ya
- Created: 2018-02-25T07:03:11.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-09-01T22:52:52.000Z (almost 4 years ago)
- Last Synced: 2023-03-06T13:00:54.937Z (over 3 years ago)
- Topics: httpclient, java, java8, novel, novel-downloader
- Language: Java
- Size: 38.1 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### 如何下载小说?
#### 单线程下载
```java
Downloader downloder = new SingleThreadDownloader();
String path = "out/万古神帝.txt";// 保存路径
String chapterListUrl = "http://www.booktxt.net/3_3571/";// 章节地址
downloader.download(chapterListUrl, path);// 整本书下载
String chapterUrl = "http://www.booktxt.net/3_3571/1292242.html";// 指定的章节
downloader.downloadSkipPrevChapters(chapterUrl, path);// 从指定的章节开始下载所有章节
```
#### 多线程下载
```java
int fixedThreadCount = 5;// 固定每次下载只用5个线程
Downloader downloder = MultiThreadDownloader.newFixedThreadCountDownloader(Executors.newCachedThreadPool(), fixedThreadCount);
int fixedTaskCount = 100;// 固定每个线程最多下载100章
downloader = MultiThreadDownloader.newFixedTaskCountDownloader(Executors.newCachedThreadPool(), fixedTaskCount);
```
### 支持哪些小说网站?
- [顶点小说](http://www.booktxt.net)
- [笔趣阁](http://www.biquge.com.tw)
### 如何支持更多的小说网站?
1. 实现[Novel](src/main/java/com/ifengxue/novel/Novel.java)接口
> 可参考[顶点小说](src/main/java/com/ifengxue/novel/BookTxtNovel.java)实现
2. 实现[Chapter](src/main/java/com/ifengxue/novel/chapter/Chapter.java)接口
> 可参考[顶点小说](src/main/java/com/ifengxue/novel/chapter/BookTxtChapter.java)实现
3. 实现[ChapterBody](src/main/java/com/ifengxue/novel/chapter/ChapterBody.java)接口
> 可参考[顶点小说](src/main/java/com/ifengxue/novel/chapter/BookTxtChapterBody.java)实现
4. 注册到工厂[NovelFactory](src/main/java/com/ifengxue/novel/NovelFactory.java)
```java
NovelFactory.register("www.booktxt.net", BookTxtNovel.class, BookTxtChapterBody.class);
NovelFactory.register("www.example.com", ExampleNovel.class, ExampleChapterBody.class);
```