Open XIU2 opened 2 years ago
自定义翻页规则
自动无缝翻页 脚本从 v4.8.8 版本开始,支持了自定义翻页规则。
v4.8.8
不过当初仅为自用,压根没有考虑过这需求,我只能简单实现自定义翻页规则,因此只适用于简单的静态加载内容网站,当然这类网站占大多数,我写的上千规则中大部分都是这类网站,因此一般是够用了~
( 主要是末尾逗号、转义、双引号 )
( 推荐优先使用简单点的 CSS 选择器,对于复杂或需要选择文字的才建议使用 XPath )
( 针对一些较为复杂的网页,主要还是用于 URL 匹配,比如要匹配多个页面什么的 )
"url": "return fun.isPager()",
简单的来说,这就是提供给 懂一些技术 的用户自给自足制作规则用的~
大多数网站的规则一般都只需要这样(下方示例规则中,url、replaceE、scrollD 均可按需省略):
url
replaceE
scrollD
// "aaa" 是规则名,唯一,因为 自定义翻页规则 优先级最高,所以会覆盖同名的 外置翻页规则 // "host" 是域名,支持正则表达式,也可以像这样 "host": ["bbb1.com", "bbb2.com"], 写多个域名或正则表达式,如果省略,则默认匹配所有域名(会对所有域名匹配 url 规则判断,可以当成一个简单的外置/自定义通用规则的方案) // "url" 是用来控制哪些网站中页面适用该规则,省略后代表该规则应用于全站(如果不知道写什么,那么就写 return fun.isPager() 这样脚本会默认自动匹配当前网站下存在 nextL 及 pageE 元素的网页,大部分网站是没问题的,如果改为匹配 replaceE 或者其他组合,那么请去下面的 Github Issues 里的 内置函数 中查看具体使用方法) // "nextL" 是用来指定含有下一页地址的元素选择器(CSS 或 XPath 都行,一般都是 <a> 元素) // "pageE" 是指定要从下一页获取的元素选择器(也就是网页主体内容),并将其插入当前网页中同样元素的末尾 // "replaceE" 用于将当前网页中的页码元素替换为下一页的页码元素选择器(这样才能无限翻页下去),省略后将会自动判断是替换 nextL 元素自身还是 nextL 元素的父元素(当 nextL 元素后面或前面有其自身 <a> 的相邻兄弟元素时脚本会替换其父元素,反之没有相邻兄弟元素则替换其自身,仅限模式1/3/6,且 "js;" 开头的 nextL 规则除外),值为空 "" 时则完全不替换 // "scrollD" 是用来指定触发翻页的滚动条与底部之间的距离,当滚动条底部距离网页底部之间的距离等于或小于该值时,将触发翻页,因此值越大就越早触发翻页,访问速度慢的网站需要调大,可省略(记得移除上一行末尾逗号),省略后默认 2000 "aaa": { "host": "aaa.com", "url": "return fun.isPager()", "pager": { "nextL": "xxx", "pageE": "xxx", "replaceE": "xxx", "scrollD": 2000 } } // 另外还有个大家可能会用的上的: // "inherits" 规则是继承标识,仅用于自定义规则,用于增删改某个外置规则的部分规则时(比如只是修改域名),可使用该标识来省略不需要修改的规则,只写有变化的规则 // 假如上面那个 "aaa" 翻页规则是脚本的外置翻页规则之一,那么就可以像下面这个 "aaa" 规则一样写一个同名规则(放到自定义翻页规则中),规则内只需要有要修改的 host 内容,以及 inherits 标识,这样脚本就会将这个自定义翻页规则中的 host 覆盖掉外置翻页规则中的 host,而该翻页规则内的其他规则内容则不变。 // 即更灵活了,无需每次为了修改部分规则而去复制全部规则了,也不用担心我后续更新这个外置规则后,你还需要再次复制一遍来修改。。。 "aaa": { "host": "ccc.com", "inherits": true }
大家也可以在下面 提出改进建议 或 分享规则~
该 Issues 下只讨论
自定义翻页规则
,其他请求/反馈请新开 Issues,否则将会删除。自动无缝翻页 脚本从
v4.8.8
版本开始,支持了自定义翻页规则。不过当初仅为自用,压根没有考虑过这需求,我只能简单实现自定义翻页规则,因此只适用于简单的静态加载内容网站,当然这类网站占大多数,我写的上千规则中大部分都是这类网站,因此一般是够用了~
# 自写规则 前提条件
( 主要是末尾逗号、转义、双引号 )
( 推荐优先使用简单点的 CSS 选择器,对于复杂或需要选择文字的才建议使用 XPath )
可能需要会一点 JavaScript 语言 / 正则表达式( 针对一些较为复杂的网页,主要还是用于 URL 匹配,比如要匹配多个页面什么的 )
(现在可以直接使用
"url": "return fun.isPager()",
这个新的内置函数通过匹配元素来匹配规则,适用于大部分网站,算是降低了一些编写规则门槛)简单的来说,这就是提供给 懂一些技术 的用户自给自足制作规则用的~
大多数网站的规则一般都只需要这样(下方示例规则中,
url
、replaceE
、scrollD
均可按需省略):# 规则总览(只列出了目前 自定义翻页规则 能用的)
「 点击展开查看 」
**** ``` yaml inherits: 继承标识,仅用于自定义规则,用于增删改某个外置规则的部分规则时,可使用该标识来省略不需要修改的规则,只写有变化的规则 host: 先匹配域名,可以是文本,也可以是正则表达式,也可以是数组(数组中也可以文本和正则表达式混合使用),如果省略,则默认匹配所有域名(会对所有域名匹配 url 规则判断,可以当成一个简单的外置/自定义通用规则的方案) url: 匹配到域名后,再来匹配 URL,也可以用来执行一些 JS 代码 urlC: 对于使用 pjax 技术的网站,需要监听 URL 变化来重新判断翻页规则(需要放在 url: 中,自定义规则的话需要使用 fun.isUrlC()) noReferer: 获取下一页内容时,不携带 Referer(部分网站携带与不携带可能不一样) hiddenPN: 不显示脚本左下角的页码 history: 添加历史记录 并 修改当前 URL(默认开启,对于不支持的网站要设置为 false) thread: 对于社区类网站,要在 帖子内 的规则中加入这个,用于脚本的 [帖子内自动翻页] 功能(即用户可以选择开启/关闭所有社区类网站帖子内的自动翻页) style: 要插入网页的 CSS Style 样式,当只需要单纯屏蔽部分网页元素时,可以只写 CSS 选择器省略掉 {display: none !important;} retry: 允许获取失败后重试 blank: 强制新标签页打开链接 1 = 网页 添加