多来源小说爬虫下载框架,并发下载,不限速度

网友投稿 950 2022-10-13

多来源小说爬虫-框架,并发-,不限速度

多来源小说爬虫-框架,并发-,不限速度

Java/Android小说爬虫工具

使用简单的几行代码,打造你自己的小说开源软件,自定义书源,多站点解析,并发搜索-。

App体验

QQ交流群:29527219

Android平台

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.** { *; }

使用说明:(具体可参照项目内简单示例或我写的小说神器)

搜索:(Android会自动切换到主线程)

EasyBook.search("天行") .subscribe(new StepSubscriber>() { @Override public void onFinish(@NonNull List 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 books) { //某一个站点的小说搜索结果 } });

加载目录:

EasyBook.getCatalog(book) .subscribe(new Subscriber>() { @Override public void onFinish(List catalogs) { //加载结果,返回该书籍所有目录 } //... });

加载某一章节内容:

EasyBook.getContent(book,catalog) .subscribe(new Subscriber>() { @Override public void onFinish(List strings) { //返回该章节所有内容,按行保存在集合内,需要自行调整格式 } //... });

-书籍:

EasyBook.download(book) .setSavePath("/sdcard/book")//设置保存的路径 .setThreadCount(150)//设置-的线程数 .setType(Type.EPUB)//设置-格式,如epub或txt .subscribe(new Subscriber() { @Override public void onFinish(File file) { //-完成后的文件 } //... });

分段-:

EasyBook.downloadPart(book, 0, 100) .setThreadCount(50) .subscribe(new Subscriber>() { @Override public void onFinish(@NonNull ArrayList chapters) { //返回一个Chapter集合,保证不为空且都有contents } //... });

当然也支持同步调用,但不建议使用:

List list = EasyBook.getCatalog(book).getSync();

销毁线程(解决内存泄漏):

Disposable disposable;void onCreate(){ disposable = EasyBook.search("天行").subscribe(...);}void onDestroy(){ disposable.dispose();}

添加自己的站点解析:

教程

//添加一个自己解析的站点类,叫Zhuishushenqi,需要继承SiteSiteCollection.getInstance().addSite(Zhuishushenqi());

解析起点排行榜:

EasyBook.getHottestRank().subscribe();

解析起点分类排行榜:

EasyBook.getRank(rankInfo);

添加json站点解析 json格式如zzzia源 详细说明如XpathSiteRule

val json = getJson()val rules = Gson().fromJson>( json, TypeToken.getParameterized(List::class.java, XpathSiteRule::class.java).type)val sites = ArrayList()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站点规则,基于xpathv2.48增加了更多解析内容,能够解析小说简介了,同时保证了图片等内容的完整性在调用目录解析后会自动把内容更新在book里v2.47完善demo的分段搜索,升级至Androidx提高了爬虫稳定性v2.46支持了分段搜索,以站点为单位陆续返回结果为所有解析添加了同步方法,但不建议在含有并发的操作中使用提高了爬虫稳定性v2.45更新了分段-,将并发-逻辑单独封装,便于使用v2.44添加对起点中文网的排行解析,用于书城功能v2.42尝试添加热修复版本控制v2.40添加EPUB封面,更换为xhtml格式,支持更多阅读软件

Thanks

okHttpepublibjsoup

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[蓝桥杯]2016蓝桥省赛B组题目及详解
下一篇:[蓝桥杯]2017蓝桥省赛B组题目及详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~