https://alanskycn.gitee.io/teachme/
语法规则
比如书籍列表规则,一般直接查看元素,把书籍最外面的那个class获取出来即可,如class=”container search-card“,填写规则时,把等号换成英文下的“.”,然后把后面的class名称前后的引号删除即可,
class.container search-card
tag是获取标签的意思,比如封面规则,封面一般是img标签,要想获取它,就tag.标签名即可,
tag.img
要想获取img标签的元素属性,则可以使用@符合,如获取img标签下的alt属性,tag.img@alt即可,
tag.img@alt
你也可以获取某个class下面的一个a标签的某个标签属性,比如我想获取封面,
标签的下一级标签使用@分割
class.container search-card@tag.a@href
根据上面的使用案例,若获取作者名称出现多余的文字之类的东西,可以使用正则表达式处理文字,比如我获取出来的作者名称的两边有中括号,我想把中括号去掉,可以使用##号来分割,以##号来结束,双#号之间添加正则表达式,双##结束后面添加要替换的字符即可,
获取了作者名称
class.sc-title@tag.a@title
若一个标签下出现了多个a标签,我怎么获取其中一个呢?我们可以指定位置,若获取第一个a标签可以使用0,若最后一个可以使用-1,若第二个可以使用2,语法是a.数字,比如
class.sc-title@tag.a.2@title
添加正则表达式
class.sc-title@tag.a@title##正则表达式内容##
因为这次获取到的作者名称两边是中括号,并且作者名两边各有一个空格,再次才是中括号,所以,我们直接把它转义掉空白即可,
若转移成空白的话,双##结束后面甚至都不用写,默认为##正则表达式内容##空白内容
中间想要添加多个正则表达式的话,使用“|”符号即可。
class.sc-title@tag.a@title##\[ | \]
—
目录列表规则
若出现多个class名称全部一样,一个class里面有两个名字,我们可以只取后面的那个名字,
<div class=”border-b chapter-list”>
只取后面的那个即可
class.chapter-list
章节名称规则
查看元素时发现有两个span标签,有章节名字标签的span是第一个,我们可以获取第一个span的text,
tag.span.0@text
正文规则
查看任意一段文字的元素时,我们可以发现正文的一般都在p标签里面,正文的父标签是id=”chapter-content“,我们可以获取正文父标签下的所有p标签内的文字内容,
id.chapter-content.tag.p@text
我们也可以使用另一种方式获取正文里所有的p标签,
id.chapter-content.tag.p@html
但是总有一些我们不要的内容,比如第一个p标签里面的内容不是我们想要的,那么我们可以排除掉第一个p标签,使用!号可以排除标签,语法:!数字,这样就可排除指定的标签了,
id.chapter-content.tag.p!0@html
但是发现还有2各p标签不是我们想要的,可以使用:号分割,语法!0:3:5,比如我们现在不想要第1、第4、第6个个p标签,
id.chapter-content.tag.p!0:3:5@html
突然发现所有我们不想要的文字虽然都在p标签里面,但是那些文字的外面又包裹了一层标签,那就是说,我们需要的文字其实只是p标签内的文字,p标签下有其他标签的内容我们不要,我们可以直接获取p标签的直系文本,语法@textNodes,
id.chapter-content.tag.p@textNodes
若只想获取标签自己的内容,不获取下级标签里的内容,可以使用@ownText方法,
id.chapter-content.tag.p@ownText
若网站编码格式为gbk的话,那我们在书源搜索规则里的最后面要加上{“charset”,”gbk”},只要网站上的编码类型有gbk三个字,都填写gbk。
若想获取目录的话,还有一种方法,比如获取小说目录,我们可以直接找关键字,然后获取该文字所在的href属性,
text.章节目录.href
比如某些网站的下一页变来变去的,可以使用这种方法来获取其中的下一页链接。
若网站的搜索类型是post类型的,可以审查元素找到搜索框input的整个div,然后获取搜索框的name值,和后面的name值,搜索地址那里填上当前网站的网址后,加上刚才获取的name值和type值,
https://b.8bqg.net/s.php.(“charset”:”gbk”,”method”:”POST”,”body”:”s={(key)&type=articlename”}
还有类似的搜索框可以选择书名和作者的,
<select id=”searchType”name=”searchtype’
style=”display:none”><option
value=”articlename”></option><option
value=”author”></option></select>
<td style=”background-color:#fff;border:1px
solid #CCC;”><input id=”s_key”name=”searchkey”
type=”text”class=”key”></td>
<input name=”t_btnsearch”type=”submit”value=””
class=”go”onclick=”check()”></td>
</tr>
我们可以选择其中的标签id和下级搜索框的name
searchtype=articlename&searchkey={{key}}&t_btnsearch=
searchtype=articlename是指整个select标签的name等于value用来确定一个标签,
searchkey={{key}}是指select下面的option下的input的name值等于value用来确定使用搜索书名,而不是使用作者搜索。并且按下下面的提交按钮的,提交按钮的name值是t_btnsearch。
若发现规则不填的话,就会调用搜索规则,若发现规则和搜索规则一样的话,就可以这样用了,或者直接把搜索规则里添加上发现规则即可,规则分割可以使用|符号。
@js:java.log(result)
可以获取查看整个网页的源码
@js:后面可以写js代码
发表回复