QQ
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.Zzzia:EasyBook:2.58'
implementation 'com.squareup.okhttp3:okhttp:4.2.2'
implementation 'com.google.code.gson:gson:2.8.5'
}
-keep class com.zia.bookdownloader.bean.** { *; }
使用 说明:(具体 可 参照 项目内 简单示 例 或 我 写 的 小 说神器 )
EasyBook.search("天 行 ")
.subscribe(new StepSubscriber<List<Book>>() {
@Override
public void onFinish(@NonNull List<Book> books) {
//所有 站点小 说爬取完 后 调用这个方法 ,传入所有 站点解析 的 有 序 结果
}
@Override
public void onError(@NonNull Exception e) {
e.printStackTrace();
}
@Override
public void onMessage(@NonNull String message) {
//一些搜索中的进度消息,错误原因 等 ,可 以用toast弹出
}
@Override
public void onProgress(int progress) {
//搜索 进度
}
@Override
public void onPart(@NonNull List<Book> books) {
//某 一个站点的小说搜索结果
}
});
EasyBook.getCatalog(book)
.subscribe(new Subscriber<List<Catalog>>() {
@Override
public void onFinish(List<Catalog> catalogs) {
//加 载结果 ,返 回 该书籍 所有 目 录
}
//...
});
EasyBook.getContent(book,catalog)
.subscribe(new Subscriber<List<String>>() {
@Override
public void onFinish(List<String> strings) {
//返 回 该章节所有 内容 ,按行保存 在 集合 内 ,需要 自 行 调整格式
}
//...
});
EasyBook.download(book)
.setSavePath("/sdcard/book")//设置保存 的 路 径
.setThreadCount(150)//设置下 载的线程数
.setType(Type.EPUB)//设置下 载格式 ,如epub或 txt
.subscribe(new Subscriber<File>() {
@Override
public void onFinish(File file) {
//下 载完成 后 的 文 件
}
//...
});
EasyBook.downloadPart(book, 0, 100)
.setThreadCount(50)
.subscribe(new Subscriber<ArrayList<Chapter>>() {
@Override
public void onFinish(@NonNull ArrayList<Chapter> chapters) {
//返 回 一 个Chapter集合 ,保 证不为空且都有 contents
}
//...
});
List<Catalog> list = EasyBook.getCatalog(book).getSync();
销毁线程(
Disposable disposable;
void onCreate(){
disposable = EasyBook.search("天 行 ").subscribe(...);
}
void onDestroy(){
disposable.dispose();
}
//添加 一个自己解析的站点类,叫 Zhuishushenqi,需要 继承Site
SiteCollection.getInstance().addSite(Zhuishushenqi());
EasyBook.getHottestRank().subscribe();
EasyBook.getRank(rankInfo);
val json = getJson()
val rules = Gson().fromJson<List<XpathSiteRule>>(
json, TypeToken.getParameterized(List::class.java, XpathSiteRule::class.java).type
)
val sites = ArrayList<Site>()
rules.forEach {
sites.add(CustomXpathSite(it))
}
SiteCollection.getInstance().addSites(sites)
v2.59
将 生成 的 epub指定 为utf-8格式
v2.58
修 复url merge规则bug
提 高 自 定 义书源 目 录解析 速度
v2.57
修 复了书源并部分 转移至 在 线书源
修 复了一些在线书源的小问题
添加 了 在 线书源 制作 教程
v2.55
删除/增加 了 几个书源
修 复在线解析 规则不能 去 广告bug
暴露 网络接 口供 自 定 义实现
v2.50
修 复自定 义书源 问题
删除了 dom4j依 赖
v2.49
增加 了 自 定 义json站点规则,基 于xpath
v2.48
增加 了 更 多 解析 内容 ,能 够解析 小 说简介 了 ,同 时保证了图片等 内容 的 完 整 性
在 调用目 录解析 后 会 自 动把内容 更新 在 book里
v2.47
完 善 demo的 分段 搜索 ,升 级至Androidx
提 高 了 爬虫稳定性
v2.46
支持 了 分段 搜索 ,以站点 为单位 陆续返 回 结果
为所有 解析 添加 了 同 步 方法 ,但 不 建 议在含有 并发的 操作 中 使用
提 高 了 爬虫稳定性
v2.45
更新 了 分段 下 载,将 并发下 载逻辑单独 封 装 ,便 于使用
v2.44
添加 对起点 中 文 网的排 行 解析 ,用 于书城 功 能
v2.42
尝试添加 热修复版本 控 制
v2.40
添加 EPUB封 面 ,更 换为xhtml格式 ,支持 更 多 阅读软件
- okHttp
- epublib
- jsoup