资源描述
首先 介绍一下关关采规则当中需要用到部分标签
\d* 表示数字 \s* 表示空格+换行 .+? 表示字符(不能为空) .* 表示字符(能够为空)
() 表示我们需要部分 ((.|\n)*) 章节内容部分, 包含了换行。
=====与杰奇后台标签对应关系=====
!!!! 相当于 ([^><]*)
~~~~ 相当于 ([^><'"]*)
^^^^ 相当于 ([^><\d]*)
$$$$ 相当于 ([\d]*)
**** 相当于 (.*)
第一步: 我们先复制一份原来规则做模板(规则文件存放在Rules目录下)。 比如说我今天演示采集站点是 阅微阁(.com) 这个小说站点
那么我就把我复制那份做模板规则命名为: 阅微阁.xml 这个关键是便于规则管理。
第二步: 运行采集器里规则管理工具, 打开后载入刚刚我们命名为阅微阁.xml文件。
第三步: 现在能够正式编写规则了, 我们写规则时要找标志性代码必需是整个页面里唯一代码, 其次我们取用部份代码越精简越好。
1. GetSiteName(站点名称) 这里我们写阅微阁(在实施任务时会在上方显示)
2. GetSiteCharset(站点编码) 这里我们打开.com源代码查找 charset= 得到charset=gbk这个gbk就是我们需要站点编码
3. GetSiteUrl(站点地址) 写入
4. NovelListUrl(站点最新列表地址) 因为这些每个站点不一样, 这个就需要自己去找了阅微阁是
5. NovelList_GetNovelKey(从最新列表中取得小说编号) 此规则中需要同时取得书名, 取得书名是在手动模式时候用到, 假如你要用手动模式那么必需取得书名, 不然手动模式将会无法使用。我们 打开 这个地址查看源文件, 我们编写这个规则时候找到想要取得内容所在地方,
比如我们打开地址看到想要取得内容第一本小说名字是“赘婿”我们在源文件里面找到“赘婿”复制代码我们编写规则用到代码其实也不是很多,编写规则标准是能省则省,也就是说代码越短越好除非万不得已通常精短部分比很好。好了不废话了, 在这个规则里面我们需要用到是《<a href="" title="赘婿" target="_blank">赘婿</a>》复制代码我们将这段改改成: 《<a href="+? =(\d*)" title=".+? " target="_blank">(.+? )</a>》
复制代码其中 (\d*) 表示编号 (.+? ) 表示小说名 .+? 表示替换此位置字符, 经过测试正确
6. NovelUrl(小说信息页地址) 这个很轻易, 我们随便点开一本小说就能知道了, 比如说, 我们能够看到我们改下将里面633换成 {NovelKey}
7. NovelName(取得小说名称正则) 我们还打开刚才那本书, 取得小说名称那我们在源代码里查找
赘婿, 此代码要源码中唯一
<span class="bigname"><i></i>赘婿<i></i></span>复制代码这一段 我们改下
<span class="bigname"><i></i>(.+? )<i></i></span>
下面 NovelAuthor(取得小说作者)、 LagerSort(取得小说大类)、 SmallSort(取得小说大类)、 NovelIntro(取得小说介绍)、 NovelKeyword(取得小说主角(关键字))、 NovelDegree(取得写作进程)、 NovelCover(取得小说封面)这些呢我就不具体演示了, 这些跟上面那个取得小说名方法是一样, 也就所谓一通百通。需要说到是取得介绍时候最好用 ((.|\n)*)来替换, 因为中间可能包含换行。
8. NovelInfo_GetNovelPubKey(取得小说公众目录页地址)很多站目录页地址有子ID在前边, 所以我们要采集目录页地址我们取得代码以下: <span class="opendir"><a href="">打开完整目录列表</a></span>
复制代码这一段 我们改成: <span class="opendir"><a href="(.+? )">打开完整目录列表</a></span>
9. PubIndexUrl(公众目录页地址) 这个里面写入{NovelPubKey}
1. 10. PubVolumeSplit(分割分卷), 这个分割分卷, 有些地方需要注意到, 假如分割分卷正则没对, 那么有可能对于下面取得章节名那些有很大影响, 这里我们怎么取得分割部分代码呢?按我经验, 是找到第一个分卷跟下面分卷查看她们共同处, 现在我们分析 这个目录章节源代码, 能够看出分卷代码为<h2>
2. 标签, 所以分割分卷就填写<h2>
11 . PubVolumeName(取得分卷名) 分割部分用到<h2>所以分卷名为<h2>(.+? )</h2>
12. PubChapterName(取得章节名) 这个我们拿一段来说明
<li><a href="502052.html">第一章 降临五行山</a></li>
复制代码假如有碰到时间、 日期、 更新字数什么我们直接忽略, 因为这些不是我们要取得内容, 这个我们能够用 .+? 来表示。 好了我们吧上面那一段改下改成表示式
<li><a href="\d*.html">(.+? )</a></li>(假如不是单行话我们用\s* 来表示N个换行符)
13. PubChapter_GetChapterKey(取得章节地址(章节编号)) 这里说明下 这个里面章节编号是在下面 PubContentUrl(章节内容页地址)用到, 那么这里我们需要取得是章节地址分析得到
<li><a href="(\d*).html">.+? </a></li>
这里既然是取得章节地址那为何我们还有用到章节名呢?这个说下关键就是为了避免取得章节名跟取得章节地址不匹配。
假如是章节页是乱序这里就要取得章节编号了(强烈提议用户用取得章节编号)
14. PubContentUrl(章节内容页地址) 这里拿 这个来说明下该怎么设置, 直接填入: {ChapterKey}.html即可
15. PubContentText(取得章节内容) 这个我们就拿, 打开源代码我们看到
在文章内容前后有这么两处代码
复制代码这里我就直接改成正规内容取得代码以下
<div id="htmlContent" class="contentbox">((.|\n)+? )<br /> </div>
复制代码这里说明下((.|\n)+? )为我们要获取内容, 切记这两处代码必需要是源码文件里唯一。
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(取得章节内容) 都没有匹配内容, 那么就出现了上面我们说空章节原因。
展开阅读全文