1、采集说明
1.1、请确认你会看网页源代码,并且了解大部分常用html标签的作用。如果不会看源代码,请付费定制;
1.2、采集规则是使用正则进行编写的,但是有些朋友不熟悉正则,建议稍微花一点点时间了解一下正则表达式,在这里我们也提供了一些简单的正则代码方便不太熟悉正则的朋友编写,当然熟悉正则的我们还是希望直接使用正则来进行;
````````````````````````````````````````````````````````````````````````
'[内容]' => '(.*?)',
'[数字]' => '\d*',
'[空白]' => '\s*',
'[任意]' => '.*?',
'[参数]' => '[^\>\<]*?',
'[属性]' => '[^\>\<\'"]*?',
````````````````````````````````````````````````````````````````````````
如上,我们支持以上几种标签,下面分别解释
[内容] 就是我们需要获取的东西
[数字] 这是纯数字
[空白] 这是用在换行的地方,包括换行 空格 \r \n
[任意] 这就是任意字符
[参数] 这是html代码中的参数 如`alt="标题"` 这样的
[属性] 这是html代码中参数的属性 对于上述例子中的`alt="标题"` ,可以代替`标题`
1.3、关于添加站点的说明
1.3.1、我们的程序在章节对比匹配时以其中一个站点为基准进行章节重排,这个站点称作基准站,乱章错章很大程度上和基准站的质量有关;
1.3.2、当然基准站不是一成不变的,基准站和站点管理里面替换源站有关,小说添加新书时,通过哪个站点采集来的哪个站点就为小说的基准站,当添加新站点替换源站为打开时,通过这个站点入库了同本小说,第一次入库时该新站替换为小说的基准站,建议除了起点中文等原创站点之外,替换源站这个功能尽量不要打开,否则会造成章节错乱;
1.3.3、入库排序对比的时候对一本书以基准站为准,例如本来一本书的基准站是顶点中文,在采集笔趣阁后基准站变成了笔趣阁,之后入库都会按照笔趣阁的进行入库和对比;
1.3.4、在更改基准站之后会有一个小说章节自动重排的功能,更改基准站时会把之前的章节重新排一次,只要不是基准站变化,重排只会重排上一次之后的,比如上一次基准站更新到了100章,然后别的站点更新到了102 章,随后基准站才更新,这时候基准站就只重排101、102两章;
1.3.5、优质站点和原创站点与普通站点的区别是基准站更新慢了之后优质站点或原创站点有新章节入库,小说章节会根据优质站点或原创站点的入库章节往后增加,而普通站点只会变成未匹配状态不会自动增加章节;
1.3.6、建议站点配置
下面是我们提供的最适合程序的,但是会导致小说添加过慢,您也可以自己来设置,只要不开启替换源站正常情况下不会出现太大的问题
替换源站不能随便开 打开就会章节错乱,正常情况下最多只能开一个起点,如果开启了原创站限制,原创站可以都开启,如果开启较多的替换源站则会相互冲突导致章节错乱
1.3.6.1、原创站点:添加新书、不替换源站;
1.3.6.2、优质站点:不添加新书、不替换源站;
1.3.6.3、普通站点:不添加新书、不替换源站;
1.4、关于规则采集的说明:规则采集分为两步走,第一步添加站点,第二步添加规则,下面就以笔趣阁http://www.biqugecom.com为例说明规则采集的详细步骤;
2、第一步:添加站点;选择“采集管理-站点管理-站点管理-添加”进行新站点的添加
2.1、关于添加站点的说明
2.1.1、站点名称,站点关键词请根据站点来填写,在章节换源页面中url中可以选用站点关键词,正确填写有助于优化!
2.1.2、站点类型的选择,请参考本文档1.3,关于站点添加新书和替换源站的配置请参考本文档1.3.6,注意1.3.6的配置仅是本程序的建议配置,不带表普通站不可添加新书和替换源站,当使用普通站点添加新书或替换源站时可能会导致基准站质量不好,出现小说章节错误、排序错误等问题;站点权重影响小说章节显示,比如说同一本小说由多站采集匹配,阅读小说时会优先显示权重高的章节,但是权重最大值不能超过100;
2.1.3、样式和备注,追书模式下有用,目前4.*之后已经移除追书模式,不必填写任何数据,这里暂时不做过多介绍;
2.1.4、添加新书和替换源站配置请参考本文档1.3.6,如果添加新书状态为“是”,添加条件为“或[OR]关系”时,最少章节和最少字数满足一个,即可添加新书,如果都不满足,即使添加新书状态为“是”也不会添加新书;当添加新书状态为“是”,添加条件为“与[AND]关系”时,最少章节和最少字数必须同时满足才可添加新书,否则即使添加新书状态为“是”也不会添加新书,新书添加入库以后,本站即为新书的基准站;替换源站状态为“是”时,采集到的小说第一次入库时会替换原来的基准站为本站,状态为“否”时,采集小说只做匹配不会替换基准站,关于基准站的说明,请参考本文档1.3;本文档为方便说明,就对笔趣阁站点做了如下配置;
3、第二步:添加规则;选择“采集管理-规则管理-规则管理-添加”进行规则的添加,输入框名称后面带“*”的为必填或必选,不带“*”的输入框,如果能找到对应的内容建议把正则表达式写上,找不到对应内容的,可以为空,本程序会自动填充;
3.1、规则信息的填写
3.1.1、规则名称的选择,可根据自己喜好自由填写,;小说采集来以后,会根据后台“采集管理-采集管理-匹配设置”内预先设定进行小说分类的匹配,此处的站点分类选择不会影响采集,但是会影响文章的分类,具体参考“采集管理-采集管理-匹配设置”,比如这里选择了“先男后女”,采集到的文章就先与默认匹配规则进行匹配,如默认规则匹配不到则再与女生匹配规则进行匹配,匹配到的分类就是文章在本站的分类,一次类推;所属站点选择第一步添加的站点,注意不要选择错误,如这里选择错误,将会根据选择的站点进行匹配,如果要进行API采集请选择状态为“是”只需要填写对应的API KEY即可,本文档介绍的是规则采集,在这里就不做过多介绍;
3.1.2、下图为笔趣阁网站某本小说的目录页,在对目录页进行采集时,你会发现本页面会有一个最新章节包含本小说后九章的信息,但是本页面正文卷最后也包含小说后九章的内容,如果进行采集会造成后九章章节重复;有三种方法可以解决此问题,可以通过选择跳过始章9或跳过尾章9或过滤重复解决此问题;本文档采用过滤重复方法进行操作,具体配置参考3.1.5下面的图;
3.1.2.1、如果选择跳过始章9,那么我们会发现小说目录顺序没有出现错误,那么过滤重复和处理乱序可选可不选;
3.1.2.2、如果选择选择“跳过尾章9”也可以解决采集章节重复问题,但会出现章节目录排序混乱问题(后九章拍到了所有章节的前面),那么此时需要打开处理乱序功能,本程序会对小说章节进行重新排序;
3.1.2.3、如果选择“过滤重复”也可解决采集重复问题,但是由于采集为从上到下进行采集,也会出现章节乱序问题,因此选择过滤重复时,必须打开处理乱序;
3.1.3、个别站点目录页面最后几章章节名加的有防采集的干扰字符,如果有的话 ,可以数一下最后几章有,添加到章节名纠错输入框就可以了;
3.1.4、如果个别站点对本站进行了屏蔽,不能采集操作,建议开启代理,代理配置参考“采集管理-采集管理-代理设置”;
3.1.5、关于下载选项,选择不支持下载的话,通过本规则采集到的小说用户只可以在线阅读,不可下载离线阅读;如果选择支持下载的话用户可以在线阅读也可以下载离线阅读;如果选择仅下载的话用户只能进行下载离线阅读,不可在线阅读;本文档选择不支持下载;
3.2、更新列表规则
3.1、关于正则的说明:本文档选择了sublime text3代码编辑器;然后回到需要进行采集的页面查看源代码,将源代码复制到事先准备的编辑器或者在线正则表达式,本文档采用的是编辑器,以下使用编辑器操作进行介绍,使用在线正则表达式的,只需要执行对应操作即可,不再做过多介绍;熟悉正则的朋友们直接在内容替换上方填写内容对应的正则就行了,不熟悉正则的朋友,建议花一点时间先了解一下正则表达式;如果不想学习呢就参考本文1.2熟悉一下正则的基本写法,下面本文档也会每个输入框也会根据笔趣阁的源代码写出2-3个正则表达式做参考;将源代码复制到编辑器以后,按下Ctrl+F,选择正则符号(在线正则表达式没有此步操作)以后,就可以在输入框填写正则表达式了,注意写完以后要按下enter键检查自己写的是否匹配上内容(在线正则匹配上的内容会直接出现),匹配上内容以后注意查看,匹配的内容是不是自己想要采集的,有无多余匹配(匹配到了自己不想让匹配的信息),有多余匹配的话,正则还需要修改,无多余匹配的话,将正则表达式复制到后台对应的内容替换框即可;
3.2、最新更新列表页就是将要进行采集的网站的最新更新或最近更新页面,编码集的选择,大多数情况下程序会自动判断将要进行采集的页面编码;
3.2.1、列表页地址就写上,列表页对应的地址,本文档以笔趣阁为例就写了“http://www.biqugecom.com”,如需做多页采集,只需要在地址后面加上“?page=[page]”;
3.2.2、更新列表页的正则说明:朋友们通过更新列表页的源代码会发现后台需要填写的小说名称、小说书号、更新标识在源代码中均有体现;小说名称相信熟悉HTML代码的朋友们都能看到,这里就不做过多阐述,小说书号呢就是小说名称对应的a标签的href属性后面的那组数字,如下图中“仙界赢家”对应的书号就是34175;那么更新标识呢?更新标识就是优先章节ID或最新章节名或更新时间或更新字数,总之每次小说更新这个标识会变化就可以当做更新标识,实在找不到的话,可以不填,本程序会自动填充;本文档这里就选择更新时间为更新标识也就是2019-05-28;
3.2.3、根据上面的源代码,本文档会每个内容替换输入框写2-3个正则表达式作为参考(每一个以“;”作为结束);
3.2.3.1、小说名称对应正则:
class="s2">\s*<a\s*href=.*\s*target.*>(.*?)<\/a;
class="s2">\s?<a\s+href\S*\s*target\S*">(.*?)<\/a;
<span\s+class="s1">\s?\[\s?<a\s+rel="bookmark".*\n.*\n.*target="_blank">(.*?)<\/a;
3.2.3.2、小说书号对应正则:
class="s2">\s?<a\s+href.*\/\d*/(\d*)\/"\s*target;
class="s2">\s?<a\s*href\S*\/\d*\/(\d*)\/"\s*target;
class="s2"><a[^\d]*\d*\/(\d*)\/"\s*target;
3.2.3.3、更新标识对应正则:
class="s4".*\s*class="s5">(.*)</span></li;
class="s5">(\d*-\d*-\d*)</span></li;
class="s5"\D(\d{4}-\d{2}-\d{2})</span></li;
3.3、信息页规则说明:进入小说信息页(一般来说在将要进行采集的站点随便找本小说点进去,就来到了小说信息页),然后将信息页源代码复制到编辑器或者在线正则表达式,参考3.1;如下图通过源代码我们会发现小说名称、作者、封面等一些信息,把我们发现的信息通过正则表达式检索,把匹配的正则表达式复制到对应的内容替换框,只要一本小书的信息页正则匹配的上,整站所有小说信息页都匹配的上,找不到的不带“*”的信息可以为空,下面就以《我的老婆是冰山女总裁》说明一下小说信息页的正则表达式;
3.3.1、信息页地址,填写小说信息页的地址小说分类ID和小说ID分别用[subnovelid]和 [novelid]代替,如点击的小说信息页地址为http://www.biqugecom.com/40/40386/,地址就填http://www.biqugecom.com/[subnovelid]/[novelid]/
3.3.2、小说名称的正则
<h1>(.*)</h1>;
<title>(.*)无弹窗;(根据head内title标签写的正则)
property="og:title"\s+.*="(.*)"\/>;(根据head内meta标签写的正则)
3.3.3、小说作者的正则
<p>作.*者:(.*)</p>;
<h1>.*</h1>[^者]*者:(.*)</p>;
meta.*author.*="(.*)"\/>;(根据head内meta标签写的正则)
3.3.4、小说封面正则
<img\s+src="(.*)\/>\s?<a;
src="(.*)"\s?\/><a\s+class;
id="bdshare"[^<]*<[^"]*"(.*)"\s?\/>;
3.3.5、本文档所选取的笔趣阁,没有小说频道,所以不再填写小说频道的正则,如果目标网站有小说频道的话,建议写上,这里不做过多介绍;
3.3.6、本小说的分类为都市言情,对应正则如下:
<meta\s+\S*category"\s+[^"]*"(.*)"\/>;
>\s?(.*)\s?>;
<a\s?href="/"[^;]*;\s?(.*)\s?>;
3.3.7、本文档所选取的笔趣阁,没有小说子类,所以不再填写小说子类的正则,如果目标网站有小说子类的话,建议写上,这里不做过多介绍;
3.3.8、小说简介对应正则
property="og:description"[^"]*"(.*)"\/>;(根据head内meta标签写的正则)
<div\s?id="intro">([^\/]*)\/;
3.3.9、小说进度为最新章节,对应正则如下:
最新章节:[^>]*>(.*)<\/a>;
property="og:novel:latest_chapter_name"[^"]*"(.*)"\/>;(根据head内meta标签写的正则)
3.3.10、本文档所选取的笔趣阁,不显示小说字数,所以不再填写小说字数匹配的正则,如果目标网站有小说字数的话,建议写上,这里不做过多介绍;
3.3.11、本文档所选取的笔趣阁,不显示小说标签,所以不再填写小说标签匹配的正则,如果目标网站有小说标签的话,建议写上,这里不做过多介绍;
3.4、小说目录页规则说明:在目标站点随便进入一本小说目录页,PC端不方便采集的话,移动端也可以采集,如果采集移动端目录页地址和匹配正则都需要填写移动端的,本文档使用PC端进行采集,移动端不做过多介绍;进入小说目录页以后查看源代码,复制到编辑器,我们从源代码中会发现小说的章节ID和章节名称等信息,把检索对应信息的正则表达式填写到内容替换框就可以了;
3.4.1、目录页地址,填写小说目录页的地址小说分类ID和小说ID分别用[subnovelid]和 [novelid]代替,如点击的小说目录页地址为http://www.biqugecom.com/40/40386/,地址就填http://www.biqugecom.com/[subnovelid]/[novelid]/;
3.4.2、章节ID正则
<dd>\s?<a\s+href.*\/\d*\/\d{1,5}\/(.*).html;
<dd>\s?<a\s+.*\/.*\/\d{1,5}\/(.*).html;
<dd>\s?<a\s+\S*\/\d*\/[^\/]*\/(\d{1,10});
3.4.3、章节名称正则
<dd>[^>]*>([^<]*);
<dd.*html["|']>(.*)<\/a>;
<dd>\s?<a\s+\S*["|']>(.*)<\/a>;
3.4.4、章节地址,填写小说章节的地址小说分类ID和小说ID及章节ID分别用[subnovelid]和 [novelid]及[chapterid]代替,如点击的小说章节地址为 http://www.biqugecom.com/40/40386/30637128.html ,地址就填http://www.biqugecom.com/[subnovelid]/[novelid]/[chapterid].html;
3.5、章节页规则说明:在目标站点随便找本小说进入章节页,将源代码复制到编辑器,写出匹配对应内容的正则表达式复制到后台对应内容替换输入框,章节接口地址为在使用API获取章节内容时填写,本文档讲的是正则采集,对此在这里不做过多介绍,为空就行;
3.5.1、章节名称对应正则
<h1>\s+(.*)<\/h1>;
readtitle\s?=\s?"\s?(.*)";<;(根据head内meta标签写的正则)
<h1>\s+([^<]*);
3.5.2、章节分页地址说明:如果采集的站点站点章节是有分页的,那么就把分页的地址填上去页码用[page]代替;如章节分页的地址为http://www.biqugecom.com/40/40386/18150402_2.html,那么分页地址就填http://www.biqugecom.com/[subnovelid]/[novelid]/[chapterid]_[page].html,由于本文档选择的笔趣阁没有章节分页,这里不过详细说明;
3.5.3、章节内容对应正则
<div\s+id="content".*<br\s?\/>\s?<br\s?\/>([^#]*)<script>read3;
read2.*\s+.*<br\s?\/>([^#]*)read3;
3.6、上面的信息填写完以后点击确认添加那么规则就可以用了;
4、测试采集及采集
4.1、大家规则写好添加上以后,返回规则列表,找到刚才写的规则,进行测试,选择运行测试,查看采集到的信息,如果确实是我们想要采集的信息(如下图),那么则可加入任务,开始正式采集,如果采集不到信息或者部分采集出错,那么大部分情况是由于我们的正则写的有问题,根据报的错误提示返回继续编辑规则,修改报错的正则即可;
4.2、确认采集测试成功以后,开始采集时,可以选择手动采集或自动采集;
4.2.1、如果选择手动采集在规则列表对应的规则后面选择采集然后选择前台采集输入对应的开始采集页码和结束页码及翻页时间间隔即可,在每次采集结束后,任务会自动停止,需要再次采集时,重复上述操作;
4.2.2、如果选择自动采集那么在规则列表对应规则后面点击任务,输入采集时间间隔,自动采集为循环采集,一次采集任务结束后,任务进入休眠状态,在经过时间间隔的时间以后,任务会自动开启继续进行下一轮的采集,附加参数为start/1/end/10(1代表开始页码,10代表结束页码,可根据需要自行填写),然后选择加入后台任务确认执行就大功告成了;
关于规则采集的说明,就先讲到这里,如果采集不到内容一定要检查自己的正则表达式写的是否正确。