价 格: ¥ 10.00

分 类: 杰奇模板 PC模板

发 布: 1月前

更 新: 1月前

授 权: 免费版

语 言: php + mysql

演 示:

下载地址 (限月费会员)

关关采集器是一款可以帮助用户朋友对指定的网页链接进行批量采集的工具,如果您有一系列关键词需要统计所包含的网页,不如使用这款完全免费的关关采集器,输入指定关键词即可一键高速采集。


应用户要求上传关关采集器,并附管管采集规则编写教程。


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

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

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

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

  !!!! 相当于 ([^><]*)

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

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

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

  **** 相当于 (.*)

现在开始编写规则,假设目标站为小说书库 [1] 

首先我们需要复制一份原有的规则做模版(规则文件存放在Rules目录下)。把复制的那份做模板的规则命名为xssk.xml 或小说书库.xml,这个主要是便于规则管理。

运行采集器里的规则管理工具,打开后载入刚刚我们命名为xssk.xml 或小说书库.xml的文件。

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

1. GetSiteName(站点名称) 这里我们写小说书库(在执行任务时会在上方显示)


  2. GetSiteCharset(站点编码) 这里我们打开小说书库 [1]  源代码查找 charset= 得到charset=gbk这个gbk就是我们需要的站点编码


  3. GetSiteUrl(站点地址) 这个就不用我说了吧


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


  5. NovelList_GetNovelKey(从最新列表中获得小说编号) 此规则中需要同时获得书名,获得书名是在手动模式的时候用到,如果你要用手动模式那么必须获得书名,否则手动模式将会无法使用。我们 打开/modules/article/toplist.php?sort=lastupdate 这个地址查看源文件,我们编写这个规则的时候找到想要获得的内容所在的地方,比如我们打开地址看到想要获得的内容的第一本小说的名字是“从零开始”我们在源文件里面找到“从零开始”复制代码我们编写规则用到的代码其实也不是很多,编写规则的原则是能省则省,也就是说代码越短越好除非万不得已一般精短一些比较好。好了不废话了,在这个规则里面我们需要用到的是<td class="L"><a href="/modules/article/articleinfo.php?id=1959">从零开始</a></td>

复制代码我们将这段改下<td class="L"><a href="/modules/article/articleinfo.php?id=(\d*)">(.+?)</a></td>

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

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


  7. NovelName(获得小说名称正则) 我们还打开刚才那本书/modules/article/articleinfo.php?id=1959查看源代码,获得小说名称那我们在源代码里查找到“从零开始”,需要得到前后代码为唯一的位置,一般小说站的名称都在H1或者H2标签里,这个我们得到的内容是

<h1>从零开始 全文阅读</h1>

复制代码这一段 我们改下

<h1>(.+?) 全文阅读</h1>

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

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

<a class="read" href="/1959.html" title="从零开始全文阅读">全文阅读</a> 复制代码这一段 我们改下<a class="read" href="/(.+?)" title=".+?">全文阅读</a>


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


  10. PubVolumeSplit(分割分卷) 这个分割分卷 有写地方需要注意到 如果分割分卷的正则没对 那么有可能 对于下面的 获得章节名那些有很大的影响 这里 我们获得 分割部分的代码呢 按我的经验呢 是找到第一个 分卷 跟下面的分卷 查看他们的共同处 在我们分析/1959.html 这个目录章节里面的源代码 可以看出分卷的代码为H2标签,因此分割分卷就填写<h2>


  11 . PubVolumeName(获得分卷名) 上面我们说明分割部分用到<h2>因此分卷名为

<h2>(.+?)</h2>


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

<li style="width:24%;"><div class="novel_num"></div><a href="481855.html" title="一章 时间方恨少">一章 时间方恨少</a></li>

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

<li style="width:24%;"><div class="novel_num"></div><a href="\d*.html" title=".+?">(.+?)</a></li>

  复制代码正常获得内容。(如果不是单行的话我们用\s* 来表示N个换行符)


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

<li style="width:24%;"><div class="novel_num"></div><a href="(\d*).html" title=".+?">.+?</a></li>

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

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

14. PubContentUrl(章节内容页地址) 这里拿/1959/432738.html 这个来说明下该怎么用,其中/1959/432738这个是前边获得的目录地址我们用{NovelPubKey}替代,1693778这个就是在 PubChapter_GetChapterKey 里面获得的 章节编号我们{ChapterKey} 替代,填入{NovelPubKey}{ChapterKey} .html


  15. PubContentText(获得章节内容) 这个获得方法我们就拿/1959/432738.html这个地址来说吧,打开源代码在内容上下我们看到

复制代码这里我就直接改成正规的内容获得代码如下

  <dd id="contents">((.|\n)+?)</dd>

复制代码这里说明下((.|\n)+?)为我们要获取的内容,<dd id="contents">这个必需要是唯一的。

16. PubContentImages(章节内容中提取图片正则) 章节中图片也就是我们所说的图片章节,这里我们可以用万能图片规则

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

现在说下替换,每行一个替换,格式如下需要替换的内容♂替换结果

<div.+?>

  复制代码这个表示过滤

<div.+?>♂<br>

  复制代码这个表示替换现在的站长们都会在小说章节内容上加入自己的广告

  如(**站第一时间更新vip章节)、(**站首发)等广告我们可以用

**站第一时间更新vip章节♂替换的内容

  **站首发♂替换的内容

  复制代码其他的替换类似

  出现空章节情况有可能是目标站正好重启网站或者你的采集IP被封等原因

  如果不是以上原因,请先检查你采集的章节是否是图片章节,如果你的PubContentImages(章节内容中提取图片) 没有获得图片章节内容的话软件就会检查你的采集文字内容 PubContentText(获得章节内容)这个里面的正则的匹配,如果 PubContentImages(章节内容中提取图片) 跟PubContentText(获得章节内容) 都没有匹配的内容,那么就出现了上面我们说的空章节的原因。


关关采集器