关关采集器采集规则编写详细教程

最常用的字符:

1、内容:((.|\n)+?)

2、需要的:(.+?)

3、不需要的:.+?

4、书号:(\d+)

5、不要地址:\d*

6、分页:{Page}

  1. \d* 表示数字

  2. \s* 空格或换行

  3. .+? 表示不需要的字符

  4. .* 表示字符

  5. () 表示需要截取的部分

  6. ((.|\n)*) 章节内容截取

  7. . 表示单个字符

  8. $ 表示结束字符 例如正则表达式weasel$ 能够匹配字符串"He’s a weasel"的末尾,但是不能匹配字符串"They are a bunch of weasels."。

  9. ^ 表示一行的开始

  10. < [<]*((?<=<(?:img|IMG)[>](?😦?:src|SRC)(?:\s=\s*(?: [“']?))))(?:[^\s”'>]).(?:jpg|gif|jpeg|bmp|png|GIF|JPG)) [^>]> 万能图片代码

第一步 1.寻找目标站 这里我们拿 必去看小说网 http://www.biquk.cn为例子

  1. 复制原有规则为采集模板 www.biquk.cn.xml 重新复制一份

3.打开关关规则编辑器 选择 www.biquk.cn.xml复件.xml 读取

  1. 开始编写规则.

第二步 1.RULEID(规则编号)这个任意写即可

2.GetSiteName(站点名称)这里我们写http://www.biquk.cn

3.GetSiteCharset(站点编码) 这里我们打开www.http://biquk.cn源代码查找 charset= 得到charset=gbk这个gbk就是我们需要的站点编码
4.GetSiteUrl(站点地址)目标站地址 写入http://www.http://biquk.cn

5.NovelSearchUrl(站点搜索地址) 这个搜索栏地址的获得,按照每个网站程序的不同,适当的修改(也可以忽略)

  1. NovelListUrl(站点最新列表地址) 目标站点显示更新的网址 例如

书库-全部小说-必去看小说网小说频道
​www.biquk.cn/xs/0-lastupdate-0-0-0-0-0-0-1.html
7.NovelList_GetNovelKey(从最新列表中获得小说编号)在这个规则中我们要获取小说名和小说编号 例如 这个地址查看源文件,我们编写这个规则的时候找到想要获得的内容所在的地方,比如我们打开地址看到想要获得的内容的第一本小说的名字是“帝霸”我们在源文件里面找到“帝霸”

帝霸 把这段代码 改成

  • 9.NovelErr(小说信息页错误识别标记) 这个我们随便输入一个没的小说的编号如http://www.biquk.cn/xs/1234465460.html这样我们获得的错误标记就是:对不起,该文章不存在!

    1. NovelName(获得小说名称正则)我们随便打开一本小说http://www.biquk.cn/xs/1258.html查看源代码 获得小说名称 这个我们可以从固定模式着手 比如我们刚才打开的 遮天 这本小说 我们看到他的固定小说名格式是《帝霸》 那我们在源代码里 找到《帝霸》 这个 我们得到的内容是

    帝霸》 改成 《(.+?)

    NovelAuthor(获 得小说作者)、LagerSort(获得小说大类)、SmallSort(获得小说大类)、NovelIntro(获得小说简介)、 NovelKeyword(获得小说主角(关键字))、NovelDegree(获得写作进程)、NovelCover(获得小说封面) 这些同上一样获取即可

    11.NovelInfo_GetNovelPubKey(获得小说公众目录页地址)这个的地址获得跟上面的一样的方法

    12.PubIndexUrl(公众目录页地址) 这个我说明一下,这个的用法这个一般是在知道采集目标站的动态地址的时候用到,如果不知道对方动态地址的话就在这个里面写入{NovelPubKey} 就好了

    PubVolumeSplit(分割分卷)这个分割分卷 有写地方需要注意到 如果分割分卷的正则没对 那么有可能 对于下面的 获得章节名那些有很大的影响 这里 我们获得 分割部分的代码呢 按我的经验呢 是找到第一个 分卷 跟下面的分卷 查看他们的共同处 在我们分析这个目录章节里面的源代码 可以看出他们有个共同点 拿这一段来说明下

    帝霸正文

    单一代码为

    修改正则 为

    \s*

    其中的\s* 表示 匹配 与任何白字符匹配,包括空格、制表符、分页符等 也就是说 在 与

    之间 不管有多少个空格 都可以用 \s* 来表示

    14.PubVolumeName(获得分卷名) 想要获得准确的分卷名,必须在上面的分割部分的正则必须正确,一般情况下分割部分跟分卷名是在一块的,上面我们说明分割部分用到的

    帝霸正文

    大家如果有注意看到的话 会发现 里面有 我们在这一步里面要获得的分卷名

    我们 改下代码

    \s* (.+?)\s*

    1. PubChapterName(获得章节名) 这个我们拿一段来说明
    2. 仙墓

    如果有碰到时间、日期、更新字数什么的我们直接忽略,因为这些不是我们要获得的内容,这个我们可以用 .+? 来表示。 好了我们吧上面的那一段改下改成表达式

  • (.+?)
  • 不是单行的话我们用\s* 来表示N个换行符

    16.PubChapter_GetChapterKey(获得章节地址(章节编号))这里说明下 这个里面的章节编号是在下面的 PubContentUrl(章节内容页地址)用到,那么这里我们需要获得的是章节地址分析得到

  • .+?
  • 章节地址那为什么我们还有用到章节名的呢?这个说下主要就是为了避免获得的章节名跟获得的章节地址不匹配。

    如果是章节页是乱序的这里就要获得章节编号了(强烈见意用户用获得章节编号)

    我们说下章节编号的写法 其实并不麻烦只需要稍微改下就行了。

  • .+?
  • 改成这样就可以了
    1. PubContentUrl(章节内容页地址) 这里我拿http://www.biquk.cn/xs/1258-3287009.html这个来说明下该怎么用,其中的1258 这个是小说编号这里我们用{NovelKey} 替代,3287009这个就是在 PubChapter_GetChapterKey 里面获得的 章节编号我们{ChapterKey} 替代,以后我们分两种写法说明

    http://www.biquk.cn/xs/{NovelKey}-{ChapterKey}.html

    注: 这种写法 PubChapter_GetChapterKey里必需是获得章节编号的如 “

  • .+?
  • 或者直接用

    {ChapterKey}

    1. PubContentText(获得章节内容) 这个获得方法我们就拿www.http://biquk.cn/xs/1258-3287009.html这个地址来说吧,打开源代码我们看到

       &nbsp

    … … 中间省了… … …

        完

    直接改成
    ((.|\n)+?)

    ((.|\n)+?)为我们要获取的内容,

    19.PubContentImages(章节内容中提取图片正则) 章节中图片可以直接用我们上面提到的万能图片规则

    <[<]*((?<=<(?:img|IMG)[>](?😦?:src|SRC)(?:\s=\s*(?:["']?))))(?:[\s"'>]*).(?:jpg|gif|jpeg|bmp|png|GIF|JPG))[>]*>

    20.出现空章节情况有可能是目标站正好重启网站或者你的采集IP被封等原因
    如 果不是以上原因,请先检查你采集的章节是否是图片章节,如果你的PubContentImages(章节内容中提取图片) 没有获得图片章节内容的话软件 就会检查你的采集文字内容 PubContentText(获得章节内容)这个里面的正则的匹配,如果 PubContentImages(章节内容中提 取图片) 跟PubContentText(获得章节内容) 都没有匹配的内容,那么就出现了上面我们说的空章节的原因。

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值