最新关关采集器规则编写教程(图文详解版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

首先介绍一下关关采规则当中需要用到的一些标签

\d* 表示数字\s* 表示空格+换行.+? 表示字符(不能为空) .* 表示字符(可以为空)

() 表示我们需要的部分((.|\n)*) 章节的内容部分,包括了换行。

=====与杰奇后台标签的对应关系=====

相当于([^><]*)

~~~~ 相当于([^><'"]*)

^^^^ 相当于([^><\d]*)

$$$$ 相当于([\d]*)

**** 相当于(.*)

第一步: 我们先复制一份原来的规则做模板(规则文件存放在Rules目录下)。比如说我今天演示的采集站点是阅微阁()这个小说站点

那么我就把我复制的那份做模板的规则命名为:阅微阁.xml 这个主要是便于规则的管理。

第二步:运行采集器里的规则管理工具,打开后载入刚刚我们命名为阅微阁.xml的文件。

第三步:现在可以正式的编写规则了,我们写规则时要找的标志性代码必需是整个页面里唯一的代码,其次我们取用的部份代码越精简越好。

1. GetSiteName(站点名称) 这里我们写阅微阁(在执行任务时会在上方显示)

2. GetSiteCharset(站点编码) 这里我们打开源代码查找 charset= 得到c harset=gbk这个gbk就是我们需要的站点编码

3. GetSiteUrl(站点地址) 写入

4. NovelListUrl(站点最新列表地址) 因为这些每个站点的不同,这个就需要自己去找了阅微阁的是/modules/article/toplist.php?sort=lastupdate

5. NovelList_GetNovelKey(从最新列表中获得小说编号) 此规则中需要同时获得书名,获得书名是在手动模式的时候用到,如果你要用手动模式那么必须获得书名,否则手动模式将会无法使用。我们打开/modules/article/toplist.php?sort=last update 这个地址查看源文件,我们编写这个规则的时候找到想要获得的内容所在的地方,

比如我们打开地址看到想要获得的内容的第一本小说的名字是“赘婿”我们在源文件里面找到“赘婿”复制代码我们编写规则用到的代码其实也不是很多,编写规则的原则是能省则省,也就是说代码越短越好除非万不得已一般精短一些比较好。好了不废话了,在这个规则里面我们需要用到的是《赘婿》复制代码我们将这段改改成:《(.+?)

复制代码其中 (\d*) 表示编号 (.+?) 表示小说名 .+?表示代替此位置字符,经过测试正确

6. NovelUrl(小说信息页地址) 这个很容易,我们随便点开一本小说就能知道了,比如说h ttp:///modules/article/articleinfo.php?id=633这本小说,我们可以看到的我们改下将里面的633换成 {NovelKey}

7. NovelName(获得小说名称正则) 我们还打开刚才那本书/module s/article/articleinfo.php?id=633查看源代码,获得小说名称那我们在源代码里查找

赘婿,此代码要源码中唯一

赘婿复制代码这一段我们改下

(.+?)

下面的 NovelAuthor(获得小说作者)、LagerSort(获得小说大类)、SmallSort(获得小说大类)、NovelIntro(获得小说简介)、NovelKeyword(获得小说主角(关键字))、NovelDegree(获得写作进程)、NovelCover(获得小说封面)这些呢我就不详细演示了,这些跟上面的那个获得小说名方法是一样的,也就所谓的一通百通。需要说到的是获得简介的时候最好用((. |\n)*)来代替,因为中间可能包含换行。

8. NovelInfo_GetNovelPubKey(获得小说公众目录页地址)很多站目录页的地址有子ID在前边,所以我们要采集目录页的地址我们获得代码如下:

ref="/files/article/html/0/633/index.html">打开完整目录列表

复制代码这一段我们改成:打开完整目录列表< /span>

9. PubIndexUrl(公众目录页地址) 这个里面写入{NovelPubKey}

1.10. PubVolumeSplit(分割分卷),这个分割分卷,有些地方需要注意到,如果分割

分卷的正则没对,那么有可能对于下面的获得章节名那些有很大的影响,这里我们怎么获得分割部分的代码呢?按我的经验,是找到第一个分卷跟下面的分卷查看他们的共同处,现在我们分析/files/article/html/0/622/in dex.html 这个目录章节的源代码,可以看出分卷的代码为

2.标签,因此分割分卷就填写

11 . PubVolumeName(获得分卷名) 分割部分用到

因此分卷名为

(.+?)

12. PubChapterName(获得章节名) 这个我们拿一段来说明

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

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

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

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

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

    14. PubContentUrl(章节内容页地址) 这里拿/files/article/htm l/0/622/502347.html 这个来说明下该怎么设置,直接填入:{ChapterKey}.html即可

    15. PubContentText(获得章节内容) 这个我们就拿/files/articl e/html/0/622/502347.html这个地址来说吧,打开源代码我们看到

    相关文档
    最新文档