记录我工作学习生活中的点点滴滴......

PTCMS建站程序小说系列采集教程
发布于 新闻资讯
2013-04-10 15:08:47
10972
10

PT小说系列程序经历了三年多的发展,越来越完善,现在的后台采集也制作的不错了,在新版程序中基本上都采用了新的后台采集规则,但是很多朋友不熟悉这部分,所以这里我们专门写篇文章来进行简单的说明。

在看这篇文章之前,请确认你会看网页源代码,并尽量了解大部分常用html标签的作用。如果不会看源代码,请下载Chrome浏览器,下载之后用Chrome打开一个网页,右键就可以查看源代码(一些特殊的例外)。

目前我们的小说系列程序产品线已经很多,有小说原创,小说阅读,小说电子书下载,小说单本,小说搜索等等,这里我们无法每种都很详细的说明,我们选取最有代表性的小说搜索来讲解。

小说搜索创建站点采集的步骤是先添加站点,然后在站点列表中点击规则进入规则编辑页面。

1.png

这里在解释下一些在编写中要输入的一些标签,直接引用后台的说明。

系统标签 * 可以替代任意字符串。
系统标签 ! 可以替代除了< 和 >以外的任意字符串。
系统标签 ~ 可以替代除了<>'"以外的任意字符串。
系统标签 ^ 可以替代除了数字和<>之外字符串。
系统标签 $ 可以替代数字字符串。
系统标签 % 可以替代任意空白。
系统标签 ♂♀ 可以作为规则分隔符,同时匹配多个规则。
采集规则中,需要获取的内容部分用四个以上系统标签代替,如 !!!!

这么多的系统标签,无非是用来替代一些字符的,怎么说呢?举个例子
假如源代码中有一串代码是这样的。
<a href="http://www.domain.com/id/1244/index.html">神墓</a>
我们要获取其中的书名,但是很显然前面有个序号会因为书的不同而发生变化。
这个时候,我们可以在采集规则框填写<a href="http://www.domain.com/id/$/index.html">!!!!</a>
如果我们要获取书号,那么我们可以用<a href="http://www.domain.com/id/$$$$/index.html">!</a>
为什么这里要用$呢?为什么书名要用!!!!代替呢?下面解释下什么时候用什么标签。

*:比较少情况会用到这个,*在很多地方代表通配符,这里也一样,那么什么时候要用到这个标签呢?举个例子,那就是屏蔽一些广告的时候,可以这样写<script language="Javascript">*</script>或<div id="!">*</div>,总之,*的作用很大,但是却因为他取的范围太大,容易超出我们的需要,把一些不必要的东西采集过来,所以还是比较少用。但是涉及到换行或带有html标签的代码他就很有用了。
!:这是很有用的标签,主要是为了取值,在两个html标签之间的比如书名,或者在标签属性中的封面地址。需要注意的是!不能获取包含html标签的内容。
~和^都很少会用到,看字面解释已经知道他的意思了,个人认为大部分情况下用!足矣。
$:一看就知道了,数字专用。
%:是用来代替html中出现的大批量的空白,可以用来替代空格换行
上面几个标签,在大部分情况下都是用来过滤的,下面几个是用来取值
****:集成了*的特点,可以取任何部分的代码。在采集带有换行标签<br/>的内容时,很有用,例如:内容简介、章节内容。总之,几段话的东西,个人认为用他代替最好。
!!!!:能够采集大多数文字内容,书名、作者、分类、封面地址、章节名,等等。
~~~~和^^^^同样很少用到。
$$$$:就单篇采集规则而言,一般都是获取章节号用,在写页面批量采集规则时,可以用来获取书号。

下面就是真正的编写实例了,我们以纵横中文为例。

进入规则编辑页面,从上面的进度提示我们看到需要六部

1、设置基本信息 >> 2、设置列表页规则 >> 3、设置信息页采集规则 >> 4、设置目录页规则 >> 5、设置章节页规则 >> 6、设置其他信息 >>

1、设置基本信息

这个页面中我们需要填写列表页地址,信息页地址,目录页地址,通过访问纵横我们得到3个相应的地址

列表页http://book.zongheng.com/store/c0/c0/b9/u0/p1/v9/s9/t0/ALL.html(小说更新列表页,需要找到带有页码的地址)
信息页http://book.zongheng.com/book/251415.html(小说的信息展示页)
目录页http://book.zongheng.com/showchapter/251415.html(小说的目录页,有的目录页和信息页在一个页面,比如笔趣阁)

这三个地址按照提示修改如图所示,列表页的页面修改为{page},信息页的书号修改为{novelid}

2.png

2、设置列表页规则 

从这里开始就进入采集规则编写了,进入页面后您会发现我们有测试页面地址及测试页面内容,页面地址就是我们这次要采集的地址,页面内容就是这个页面的html源代码

3.png

页面编码就是这个页面的编码,是utf-8还是gbk,当然绝大多数您不用填写,我们程序会自动判断,从这里我们可以看到这个页面是utf8的。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
页面出错标志当页面中出现此处标识即代表页面出错,不再采集这个页面。
页面内容整理这里就是内容替换,可以把不规则的替换成规则的信息
小说书名,书号,章节id的获取书号是用来记入日志,确定这本书采集进度,书名是当第一次采集的时候进行匹配,章节id则是判断这次是否需要更新。
我们可以从这个页面以下源代码获取到以上数据
<a href="http://book.zongheng.com/book/256436.html" class="fs14" title="兽神变" target="_blank">兽神变</a>

<a href="http://book.zongheng.com/chapter/256436/4633412.html" title="正文 第七章  暴魔虎" target="_blank">

因此规则为以下

书号
<a href="http://book.zongheng.com/book/$$$$.html" title=
书名
<a href="http://book.zongheng.com/book/$.html" title="!!!!" target="_blank">
章节id
<a href="http://book.zongheng.com/book/$.html"*a href="http://book.zongheng.com/chapter/$/$$$$.html" title="

点击下一步

3、设置信息页采集规则 >> 

列表采集结果我们可以看到上个页面采集的结果,下面是本页的地址和代码,

页面编码页面出错标志页面内容整理同上,以后这个就不在说了

这个页面的就是获取小说的信息,原创站和转载站是略有不同的,根据上一部的说明进行填写

4、设置目录页规则 >> 

5、设置章节页规则 >> 

章节页不能的方式不能解决所有的采集,有些需要借助外调php接口来实现,
比如正常的章节内容在页面内 我们只填写获取章节内容即可获取,
比如起点章节页的他给出完整的txt地址,我们用小说内容关键词获取到这个地址,然后小说内容地址中填写{contentkey}表示我们获取到的这个地址,然后在获取章节内容填写新地址的采集规则,
在比如有些站点是调用js的,我们在小说内容关键词获取到这个关键词,然后写一个php接口来处理,然后小说内容地址中填写http://www.aaa.com/plus/a.php?key={contentkey}来传递这个关键词进行处理,在获取章节内容写上接口展示的页面的获取规则即可

6、设置其他信息 >>

其他技巧

1、内容替换是可以过滤一些内容中的干扰字符的,a♂♂♀♀b♂♂c a替换成空 b替换成c,根据说明结合上面的知识我们写<script>*</script>♂♂♀♀可以过滤掉内容中的js代码

2、有些站点开站时间很长,很早的文章和现在的文章模版已经不一样了,这里就要用到♂♀标签对不同时期的模版进行分隔匹配,匹配规则1♂♀匹配规则2♂♀匹配规则3  比如起点的章节目录匹配,他的免费和vip章节是不同的。



其他问题留言讨论




分享本文到:
除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:Pakey's BLog >>新闻资讯 >>PTCMS建站程序小说系列采集教程
本文地址:http://www.pakey.net/blog/ptcms-novel-collect-doc.html