一、关于html网页
什么是html?
先看下面的视频。
说白了,html(网页)就是一个储存在服务器上的文件。
阅读源(书源、订阅源等)怎么制作? 阅读源面向的是html源码,不是浏览器渲染出来的页面(这里注意,手机UA和电脑UA,两个是不同的页面)
UA是User-Agent简称,User-Agent是请求头其中之一成员。什么是请求头?【点击查看】
UA(User-Agent)还有另一个称呼叫[用户代理],百度介绍:【点击查看】
UA是用户标识,也是当前浏览器环境标识。
比如手机打开和电脑打开同一个网址,呈现的网页不一样。
比如微信的某些链接在微信能打开,在浏览器打开,让你用微信打开。
比如某些快手、抖音或者bilibili等等,在浏览器打开下面会显示打开应用观看或者打开应用关注之类的,因为当前环境它知道这是你的浏览器,并不是它自带的浏览器。
正常情况下,我还是比较建议手机UA,去浏览器调试源等等,手机UA还是非常方便的。
二、制作「书源(订阅源和书源一个道理)」
我们打开浏览器网页获取的是这个页面。
阅读源获取的是这个源码页面。
首先打开阅读,新建一个书源。
源URL,说白了就是最好给网页留个首页链接,如果你在后续规则里面链接不全,它会默认使用这个补全。
比如起点是https://m.qidian.com/,如果是https://m.qidian.com/?source=pc_jump这些之类的把后面删掉。
源名称当然是小说网站名字了,要不然你打算起什么名字?
源分组就是源分类了,给书源写一个分类。
源注释就是一些信息,比如制作这个书源的作者,想给这个使用的用户留一个信息。
登录URL,就是登录链接,有些网站登录后,才会给用户呈现内容。
把登录链接放到这里就行。
书籍URL正则,最近老是不好用,不知道作者在搞什么。这个就是正则表达式匹配详情页链接,比如搜索得到的内容是详情页链接会直接跳转到详情页,还有主页面的添加网址,用的也是这个规则。
请求头,前期就用一个用户标识,后期再详细介绍。
第二页面搜索
首先看到的就是搜索地址,这个首先打开网站搜索一个关键词得到这样的页面。
搜索地址就是上面的链接
key为关键字标识,通常形态为{{key}},运行时会替换为搜索关键字
运行的时候,书源程序会把{{key}}替换成你搜索的关键字。
比如起点的链接:https://m.qidian.com/soushu/{{key}}.html
比如你搜索的文字是:我的,那么搜索的时候它会把这个替换成:https://m.qidian.com/soushu/我的.html
校验关键字就是校验书源的时候的关键字。
然后是书源列表规则,打开M浏览器,点击审查元素(直接看源码很麻烦,半天才能知道父元素是谁)
点击列表,然后点击父元素。
现在我们知道源码的列表了,但是不知道规则怎么写。
我们先用适合网页的JSOUP之Default写书源。
为了以防万一带上其他列表,我还是比较喜欢上面再带两个元素。
class和id是元素,写的时候是class.然后从网页上复制元素(id同理)。
tag获取的是标签,写的时候是tag.然后从网页上复制标签,比如上面那个源码列表,它的书籍列表标签是li,父元素标签是ol,标签div,最好别这样写,容易出问题。
首先你们一看,看懵了吧?不应该是https://m.qidian.com/soushu/{{key}}.html吗?怎么是/soushu/{{key}}.html?
我前面有说过,链接不全默认用[源URL]补全,全局性的,包括正文。
a标签的href是详情页链接,前面少了https:,补全访问,阅读这方面挺人性化的,一般自带默认补全。
img标签不用想,在浏览器,img注定是图片,后面的src是图片链接。
我们可以看到标签是h2,元素的class="book-title"是标题(书籍名字),大家疑惑了吧,为什么有mark标签?这是要显示的关键词。
我们可以看到,后面有text和##,##后面是正则表达式,|是正则表达式里面的分割符。
正常情况下text是文本,href、src等是链接。
这里的书籍简介可以这样写class.book-cell@class.book-desc@text或者是class.book-cell@tag.p.0@text
最后加的是序号,正序这样写0:1:2:3,倒序这样写-1:-2:-3,排除加个[英文]感叹号,不是其他的。!0:1:2:3
大家看到这个懵了吧?不要慌张,看一下在哪个标签里面,作者明显在<span class="book-author">里面
class.book-cell@class.book-meta@class.book-meta-l@tag.span@text或者是class.book-cell@class.book-meta@class.book-meta-l@class.book-author@text记得加两个#删除作者,##作者
剩下同样的道理,我就不多介绍了。详情页可以不写,也可以写,主要介绍起点的现在目录是什么情况?
这时候大家疑惑了,为什么调试源获取不到目标?
阅读默认获取的是原版静态网页,不是M浏览器资源加载完成的。
这个可以用Via看源码是什么情况,看了一下果然没有,怎么办呢,第一种,看它加载获取章节目录位置,找了一下非常麻烦,直接抓包找到了
https://druid.if.qidian.com/argus/api/v1/chapterlist/chapterlist?bookId=1003541158
这种列表是json数据列表