Ptcms小说采集规则编写教程

资讯8个月前发布 up博主
113 0

1、采集说明

1.1、请确认你会看网页源代码,并且了解大部分常用html标签的作用。如果不会看源代码,请付费定制;

1.2、采集规则是使用正则进行编写的,但是有些朋友不熟悉正则,建议稍微花一点点时间了解一下正则表达式,在这里我们也提供了一些简单的正则代码方便不太熟悉正则的朋友编写,当然熟悉正则的我们还是希望直接使用正则来进行;

““““““““““““““““““““““““““““““““““““

‘[内容]’ => ‘(.*?)’,
‘[数字]’ => ‘d*’,
‘[空白]’ => ‘s*’,
‘[任意]’ => ‘.*?’,
‘[参数]’ => ‘[^><]*?’,
‘[属性]’ => ‘[^><‘”]*?’,

““““““““““““““““““““““““““““““““““““
如上,我们支持以上几种标签,下面分别解释
[内容] 就是我们需要获取的东西
[数字] 这是纯数字
[空白] 这是用在换行的地方,包括换行 空格

[任意] 这就是任意字符
[参数] 这是html代码中的参数 如`alt=”标题”` 这样的
[属性] 这是html代码中参数的属性 对于上述例子中的`alt=”标题”` ,可以代替`标题`

1、首页的更新列表页采集 ,新增首页采集规则
PTCMS内置
[subnovelid] // floor(小说ID/1000)
[novelid] //小说ID
[页码] //列表采集页码
[空白] //空白 包含换行和空格
[内容] //等同于 .+? 匹配之间的任何字符
[数字] // 等同于 d+ 匹配0-9数字组合
常用正则,以下的自己百度下
.+? //最小匹配 . 除了换行符之外的任意字符,+ 重复一次或一次以上
//? 懒惰模式
d+ // d 表示匹配的是数字,+ 表示重复一次或者多次
//* 表示重复零次或者多次
w+ //[w]+和w+没有区别,都是匹配数字和字母下划线的多个字符;
//[w+]表示匹配数字、字母、下划线和加号本身字符;
s //s是指空白,包括空格、换行、tab缩进等所有的空白,而S刚好相反

//
是换行。
是回车。

[]
表示数组而非排列,即不按固定次序位置排列;
在[]内的字符可以任意次序出现。
[ABC]+
可以匹配”AAABBBCCC,BBBAAACCC,BACCBACAACBAC,…”,不是一定按固定A…B…C…的次序排列。
[whttps://www.csqc8.com/-+]+
是匹配w [0-9a-zA-Z_] 或 . 或 / 或 – 或 + 字符;
在[https://www.csqc8.com/-+]内均表示字符本身;
在[]+外表示{1,}至少1次或多次;
在[.]内点,不是任意字符的意思,就是匹配点.字符本身,点.可以不需要加反斜杠.。
在[]内特殊字符,表示匹配特殊字符本身,不需要加反斜杠,
在[]外特殊字符,表示匹配特殊字符本身,必须要加反斜杠。

()用于捕获匹配的字符串,比如:a(.?)b捕获a和b之间的任何字符(除了换行符外)
而且()还用于括起正则表达式中的小组,比如:^(a|b).$匹配以a或b开头的任何字符串
另外,(?:pattern)是一个非捕获匹配,就是匹配但不捕获字符串
(?<=pattern)逆序肯定环视,表示所在位置左侧能够匹配pattern
(?<!pattern)逆序否定环视,表示所在位置左侧不能匹配pattern
(?=pattern)顺序肯定环视,表示所在位置右侧能够匹配pattern
(?!pattern)顺序否定环视,表示所在位置右侧不能匹配pattern
这些都和()是不同的概念,不要混淆
[]用于定义匹配的字符集或字符范围,比如:[a-z]匹配一个英文小写字母范围从a到z
{}用于定义匹配的次数,比如:a{1,}匹配a至少一次

© 版权声明

相关文章