• 网站首页
  • 安装指南
  • 模板设计
  • 模块说明
  • 常见问题
  • 优化技巧
  • 开发指南
  • 帮助中心
  • JIEQI CMS使用技巧
    • -生成静态页面
    • -广告与广告积分
    • -多服务器同步设置
    • -模板制作方法
    • -制作自定义页面
    • -页面显示配置语法
    • -常用文件说明
    • -采集规则说明
    • -定时采集配置方法
    • -Discuz!论坛整合说明
    • -常见问题总结
您所在的位置:JIEQI CMS 设计使用手册 > JIEQI CMS使用技巧 > 采集规则说明

采集规则说明

基本说明

先登陆后台,依次点选上方菜单“模块管理”--“小说连载”然后点左边菜单“采集配置”链接,即显示当前所有采集规则,每行代表一个网站。1、“单篇采集规则”是指采集一篇文章所需要的规则配置,主要内容包括网站名称、网站地址、文章标题、作者等基本信息以及本文章的章节结构和章节内容,可以点击编辑进行配置修改采集规则。

2、“批量采集”是在单篇采集基础上进行的,比如采集一个文章列表页面中的所有文章,这个列表可以是最近更新、排行榜或者某个类别的文章。批量采集的规则主要是获取列表页面的文章名称和文章序号,然后调用单篇采集进行采集,如果您需要获取列表里面第二页、第三页之类的内容,还需要设置一个翻页的参数解析规则。
注:所有采集规则都有生成对应的配置文件,允许采集哪几个网站的配置在:configs/article/collectsite.php,某个网站的采集规则配置文件为:configs/article/site_网站英文标识.php,因此网站英文标识不允许重复。例如:在configs/article/collectsite.php里面配置起点中文网的采集:

$jieqiCollectsite['1']['name'] = '起点中文网';$jieqiCollectsite['1']['config'] = 'cmfu_com';$jieqiCollectsite['1']['url'] = 'http://www.qidian.com';$jieqiCollectsite['1']['subarticleid'] = '';$jieqiCollectsite['1']['enable'] = '1';

那么起点的采集规则配置文件就是configs/article/site_cmfu_com.php。

采集规则原理

采集的基本原理是根据指定的地址用程序获取对方网页原始内容(即html代码),然后解析里面的内容,根据您要获取内容左右两边的代码确定提取内容。如:html代码是<div id="abc">内容</div>,那么您要获取中间部分内容则通过<div id="abc">和</div>来限定。
采集的第一步是拥有一个有效的地址,而不同文章或不同章节的地址是不一样的,我们一般用文章序号和章节序号来确定具体地址。在设置地址时候,可以用以下几个变量:<{articleid}> - 文章序号,<{chapterid}> - 章节序号, <{subarticleid}> - 文章子序号, <{subchapterid}> - 章节子序号。其中文章子序号和章节子序号并不是必需的,如果有的话是从文章序号和章节序号中获得。
如网址 http://www.domain.com/12/12345.htm,其中12345表示文章序号,而12这是子序号,运算方式是floor(<{articleid}> / 1000)。子序号可以有以下几种运算方式:
一、“+-*/%”分别表示加减乘除和取余数。
二、floor()函数表示取小数的最小值,ceil函数表示取小数的最大值,象上面的例子<{articleid}> / 1000获得值是12.345,如果用floor函数获得12,而用ceil函数获得13。
三、另外还有一种判断选择语法,判断符号可以是">"大于,"<"小于,"=="等于。如 <{articleid}> % 2 == 0 ? 1:2 ,?前面表示条件,后面部分 : 前面表示符合条件的值,后面是不符合条件值。上面表达式的含义就是如果文章序号除以2获得的余数是0,返回1,否则返回2。
采集规则的写法中,可以用以下标签来替换内容:
1、系统标签 * 可以替代任意字符串。
2、系统标签 ! 可以替代除了<和>以外的任意字符串。
3、系统标签 ~ 可以替代除了<>'"以外的任意字符串。
4、系统标签 ^ 可以替代除了数字和<>之外字符串。
5、系统标签 $ 可以替代数字字符串。
6、采集规则中,需要获取的内容部分用四个以上系统标签代替,如 !!!!

采集规则选项说明

一、单篇采集规则选项:
1、现有章节无法对应时候是否全部清空重新采集:如果选择是,当本站同一本书现有的章节名称或者排列和对方对应不上时候自动清空所有章节,按对方结构重新采集。这样的优点是可以和对方完全保持一致,缺点是如果自己手工更新过的内容也会被清空,频繁删除章节不利于搜索引擎收录。
2、是否默认把采集到的文章设置为全本:是指采集回来的文章是否默认是已经写完的。
3、是否采集图片内容到本地:如果采集到本地,会自动获取图片在本地作为附件生成。不采集到本地则远程调用对方地址。
4、文章类型对应关系:我们在采集中解析出来的文章类别一般是文字类型的,比如“玄幻”“武侠”,而要设置对应的本站类别需要是数字类型的。本站的类别配置文件在configs/article/sort.php,前面的数字序号就是类别的序号。多个类别对应写法如下例子:“玄幻=>1||武侠=>2||言情=>3||default=>4”,其中default对应的是默认的类别,就是无法直接对应上的。
5、代理服务器地址:在需要通过代理服务器的时候需要设置下。
6、突破防采集设置:对方开启防采集功能时需改设置为“是”。
7、一本小说阅读目录页面的地址有两种采集方式:①、通过设置“目录页面链接采集规则 ”在文章信息页面直接获取地址;②、通过文章序号以及文章子序号在“文章目录页面地址”里配置。二者只需设一,优先使用前者。
8、章节内容过滤规则:可过滤掉章节里不需要的部分。
二、批量采集规则选项:
1、采集规则名称:这里可以使用中文的,比如最近更新,总排行榜等。
2、采集页面地址:可以使用系统变量<{pageid}>来表示不同的页码。
3、下一页的页码采集规则:获取下一页的参数有两种方法,一是根据采集规则从本页获取下一页的页码,二是页码是数字并且逐个增加的,这里设置成“++”即可。

采集规则设置实例和技巧

1、当您需要获取的内容在一个页面中是唯一时,请保证内容左右标记也是唯一的。如源码是“<b>其他</b><span id="abc"><b>内容</b></span>”,如果您的采集规则错误的写为 “<b>!!!!</b>” ,解析出来的可能是“其他”,而采集规则写成 “ <span id="abc"><b>!!!!</b></span>”,获得的才是想要的“内容”。
2、大部分需要的内容是没有html代码的,即不包含 “<”“>”,请用 ! 标记,数字用 $ 标记,引号里面内容用 ~ 标记,也就是说尽量用范围小的标志。如源码是“<a href="http://www.main.com/index.php?id=111">标题</a>”,其中111这个数字是根据不同的页面变化的,那么:①解析标题写法是“<a href="http://www.main.com/index.php?id=$">!!!!</a>”,②解析网址的写法是“<a href="~~~~">!</a>”,③解析网址中数字的写法是“<a href="http://www.main.com/index.php?id=$$$$">!</a>”。
3、在采集有html标记内容时候,比如采集文章简介和章节内容,里面有换行之类的代码,那么要确定标记的左边内容和右边内容都是本页面唯一的。由于采集后自动会过滤html代码,所以我们在设置左右内容标记时候并不一定是直接靠近内容代码。如源码是“<div id="content><hr>这里是<br>内容<hr></div><div id="ad">广告</div>"”,你可以把采集规则写成“<div id="content>****<div id="ad">”,这里只要保证“<div id="content>”和:“<div id="ad">”是页面里面唯一,至于中间的“<hr>”“</div>”都会被过滤,而换行标记“<br>”仍旧会作为换行处理。
4、有些章节内容并不在html里面,而是调用js的,可以用两种采集方法:比较好做法是直接获取js地址采集并解析,第二中方法是在确认js里面写法是document.write('内容');的情况下,也可以仍旧采集html,解析规则里面只要把js地址取出就行,程序会取获得js内容。

5、一般遇到空格换行,而不是代码&nbsp,<br />,可以用 “!”来替换。

例如:采集小说封面图片<td height="160" align="center" valign="top"> <br> <br> <img src="http://www.main.com/images/123.gif" width="120px" height="150px" />可以写成:<td height="160" align="center" valign="top">!<br>!<br>!<img src="~~~~" width="120px" height="150px" /> 。