使⽤xpath编写书源爬取⼩说⽹站实战
阅读app是⼀款开源的⼩说阅读软件,它的核⼼是书源系统,⽤户可以编写规则从⽹上爬取⼩说内容.
阅读器本⾝⽤于阅读的功能已经能满⾜⽤户需求,除此以外还有⼀些实⽤的功能,⽐如替换净化可以把去除多余的⼴告之类的.还能⽣成txt或者epub,直接可以当⼀个⼩说下载器使⽤.
编写书源规则,其实主要就是从html中获取书的各种信息,包括作者,字数,封⾯等,还有各种链接.
他的模式是这样的
1. 从搜索页获取书籍列表
2. 搜索页进⼊书籍的详情页
3. 详情页可以进⼊书籍的⽬录页
4. ⽬录页进⼊章节内容
这之中每⼀个节点都可以解析html爬取信息.
默认⽀持的解析语法是JSOUP,是⼀个java的爬⾍库.
因为我平时并不⽤java,⽤这个要学很多东西,我平时更喜欢使⽤jquery和正则来爬取内容...
另外这个软件还⽀持xpath,和正则,但是正则还是⽐较⿇烦的,相对来说xpath是通⽤更简单的⼀种xml解析语法,所以我主要会⽤xpath,搭配正则来完成解析.
另外还有就是这个软件⽀持JSONPath,这在能请求到json的情况下就很⽅便.
下⾯以⼀个⽹站作为例⼦,
quanben-xiaoshuo⽹
⽣成的书源是下⾯这样
表达式描述
.选取当前节点。
..选取当前节点的⽗节点。
@选取属性。
举个例⼦,选取书籍列表
//div[@class='book']
//就是从⼦节点选取, [@class='book'] 就是筛选class属性等于book的
也就是筛选出所有class为book的div,之后我们再以这个div为⽗节点,从中提取书籍的标题,作者等信息.
02.谓语判断筛选
判断属性
//*[@class='content']
判断⽂本
js 正则替换//a[text()='开始阅读']
03.提取内容
提取⽂本
//text() 提取所有⼦节点的⽂本,
/text() 提取⼦节点的⽂本,不包含⼦⼦节点
提取属性
/@href 提取a链接
04.正则替换净化
这个是阅读的功能不是xpath的,典型的作⽤就是消除换⾏之类的空⽩字符.
提取的后⾯
形式 ##正则表达式##替换内容
只能跟在其他规则后⾯,独⽴使⽤相当于all##正则表达式##替换内容
例⼦见最后的【书源⼀】的正⽂页规则
05.开始编写书源
阅读软件⾃带⼀个在线调试编写书源的后台,按照他这个列表填完就可以了.
06.上传到源仓库共享
源仓库是⼀个⽤户上传分享书源的⽹站,登录之后提交书源,⽅便别⼈使⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论