小说爬虫真的很简单,但要能优雅地使用却很麻烦。下面让我来诉说一下这几天的肝路历程。整个流程很完整,但不会很深入,主要是讲思路,给想要写类似功能的同学踩点坑,有什么细节问题直接评论就好。
文章目录
先奉上项目 Github,里面有实现代码以及jar和apk两种软件,几天课余时间肝出来的,有些想的不周到的地方还请见谅。
明确产品需求
- 最基本的要求,能够搜索小说,然后点击小说进行阅读或者下载。
- 同时,我们想要能够搜索到各个站点的小说,并且速度不能太慢。
- Android客户端实现书籍收藏(追更),并自动检查是否有章节更新。
- 下载格式,我们不仅想要生成txt格式的书籍,还想要epub这种带目录图片的格式,最好还要能够支持mobi,然后直接导入kindle。
- 下载速度不能像市面上普通的小说软件一章一章的下,否则速度太慢会影响体验,最好要能达到宽带的最大速度。
- 该程序能有较好的可移植性,因为我们想要同时制作PC端和Android端的软件。
那么,开干!
总流程
关于爬虫框架
在爬网页内容这部分,并没有用什么黑科技,只是普通的正则匹配爬虫。我用了自己的工具类,后来有些网页有些太复杂也引入了Jsoup负责解析html。这里默认大家都明白怎么解析html内容。
关于编码方式的坑
大多数人一想到编码方式,肯定是首选uft-8了。但是在小说网站里,我们需要首选gbk,因为很多小说的某些字符是没有包含在utf-8里的,会变成??常见的小说网站编码方式都是默认gbk。
因此在框架中需要保留一个方法设置编码方式,并且默认应为gbk。
如何实现搜索功能
这里我想到了两种方案。第一种是利用百度这些搜索引擎搜索小说,再对搜索引擎得到的结果进行解