AKCMS功能介绍

来自站长百科
跳转至: 导航、​ 搜索

导航: 返回上一页

AKCMS的主要功能主要有以下几个方面。

采集[ ]

AKCMS内置了小巧的采集器,下面我以采集网易新闻为例详细讲解如何使用采集功能。

采集前的准备工作:

  1. 准备一个待采集的最终页的URL
  2. 准备一个待采集的列表页的URL

首先分析待采集的最终页,以http://ent.163.com/09/0413/14/56PM092P00031H2L.html为例。找到要采集内容的前后的唯一的标志,比如经过研究后发现,网易新闻的题目前后都加着<h1>标签:<h1 id="h1title">A..V女.优.苍.井.空.否认来穗 传其骂中国媒体是混蛋</h1>;正文的开始前面都会有“<div id="endText">”,后面都会有“<a href="http://ent.163.com/">”

分析好了就在后台这样新建一个正文采集规则:

Akcms01.jpeg

大家也许看明白了,AKCMS可以采集页面的20块不同的区域,每一块的采集结果用[fieldx](x从1-20)表示,您也可以在题目字段这样写: “【哈哈】[field1]”则入库的文章就带着这个前缀了:【哈哈】A.V.女.优.苍.井.空否认来穗 传其骂中国媒体是混蛋。也可以用多个区域采集结果的组合,比如:“[field1][field3]<br>[field5]”都是可以的。

下面让我们点击上方的预览看看效果:

Akcms02.jpg

正文内容中的代码,除了<img>被保留了,其他HTML代码都会被过滤掉,无效的代码也被清理过了,这样一来就不用担心正文中的广告和链接了。

顺利的话采集器就算添加完了。下面再用几个场景演示一下几个高级功能的用法:

假如上级领导有指示,文章中不得出现“女.优”这两个字,你可以在最下方的替换中这样写:“女.优|优优”,这样就可以了。

不想采集正文中的图片怎么办?AKCMS采集器并没有这个设置,但是可以通过替换功能变通的实现:在替换中增加一行“<IMG|<abc”,这样就破坏了原有的<img>标签,而正文中的其他标签均会被过滤掉,这样就变通的实现了禁止采集图片。(这个例子体现出了AKCMS鲜明的特色,它并不会为每一个功能都固定得设计一个选项;而是给站长充分的自由度,让站长自由组合,灵活运用。)

Akcms03.jpeg

过滤后预览效果如下:

Akcms04.jpeg

假如风声更紧了,替换也不行的话,就使用跳过设置,包含敏感词的一律跳过不采集。如果风向偏暖,想做个专门的女优网站就使用特征设置,含有敏感词的才采集。使用这两个设置后如果目标页符合设置不采集,预览的时候会简单的显示skipped。

在采集的同时还可以分析关键词和文件名,只要在关键词和文件名字段设置为[auto]即可。比如:这篇新闻识别如下图,识别质量依赖于词库

Akcms05.jpeg

至此文章正文的采集规则已经设置完成,下面再设置列表页的采集规则。

首先我们找了一个列表页:http://ent.163.com/special/00032IAD/roll.html,查看网页源代码寻找列表的源代码,很容易就找到了:

Akcms06.jpeg

下面我们寻找列表的起始标志,如果找不到唯一的起始标志也没有关系,那就把范围扩大一些,比如:这里起始标志我选用离list很远的 “”也没有问题,中间的代码会自动过滤掉而只保留<a>链接。保存之后,可以预览一下:

Akcms07.jpeg

如果list中混杂了一些其他的链接,可以通过特征过滤:

比如:

  1. 很多种URL混杂在一起,而我们只想采集ent.163.com域名下的文章,就在网址采集特征里写“ent.163.com”
  2. 很多种URL混杂在一起,news.163.com,ent.163.com等等,除了porn.163.com域名下的文章都需要的话,就在网址跳过特征里写“porn.163.com”
  3. 很多种URL混杂在一起,但是我们只想采集标题中含有“苍井空”的文章,我们就在标题采集特征里写“苍井空”
  4. 很多种URL混杂在一起,但是题目里含有“色情”的我们不要采集,我们就在标题跳过特征里写“色情”

AKCMS还支持采集多页列表,使用方法是首先分析分页的URL特征,找到增长的页面数,找到规律后用(*)代替这个变化的id,在URL后面的两个框中依次输入起始和结束的ID,比如采集这些页面

http://www.sexinsex.net/forum/forum-308-2.html
http://www.sexinsex.net/forum/forum-308-3.html
http://www.sexinsex.net/forum/forum-308-4.html
http://www.sexinsex.net/forum/forum-308-5.html
http://www.sexinsex.net/forum/forum-308-6.html
http://www.sexinsex.net/forum/forum-308-7.html
http://www.sexinsex.net/forum/forum-308-8.html

就写这样填写:

Akcms08.jpeg

AKCMS还支持定时采集,设置好定时设置,保存即可。需要注意的是:这里的定时不是通过系统进程的精确的定时,而是通过前台用户访问触发了一个后台的动态程序,动态程序判断当前时间与定时设置的关系,再决定是不是执行。为避免执行时间超时,AKCMS使用这样的逻辑:先把待采集的页面扔到一个待采集的队列中,然后依次采集,每次采集一个。因此,当访问量比较少的时候,定时采集不精确,甚至可能相差较大。当没有访问量时,定时采集无法工作。

另外,分页采集(比如:采集1-8页)只限于手动采集,如果定时采集的话对系统资源浪费较大,而且没有任何用户。一般而言,定时采集只采集最新内容。

功能的命名说明:2.6正式版以前的命名和2.6正式版及以后版本命名稍有不同。

  1. 采集器 = 列表采集规则(new)
  2. 采集规则 = 正文采集规则(new)

正文链接[ ]

AKCMS支持站内正文链接功能

正文链接功能是指:指定一些关键字,站内的文章正文中凡是出现这些关键字的,都链接到一个设置好的URL地址(同一篇文章只链接一次)。例 如:http://www.yantai3.com/yantainews/longkou/38974.htm这篇新闻中的“龙口”两个字链接到了“龙口市”的资料页面。

2.6中新增了一个默认栏目:keywords,在这个栏目下创建一篇文章就增加了一个关键词。比如:我在题目里写一个“龙口”,在目标地址里写 http://www.yantai3.com/xingzhengqu/longkou.htm,保存。如果是动态站,则文章正文中出现龙口的地方都会变成一个可以点击的链接。如果是静 态站,则重新生成页面后会实现上面的效果。

想去掉某个关键词,就通过文章管理找到对应的词删除即可,修改也和修改普通的文章没有什么两样。

注意:因为有缓存,正文链接功能当少于1000个关键词并不会明显影响动态网站的效率,如果关键词很多,建议生成静态页或者联系我专门优化。

模板插件[ ]

AKCMS从2.6版本起支持自定义的模板插件

AKCMS模板插件安装说明

  1. 从akcms官网下载模板插件包,正常的话解压缩后只有一个扩展名是.template.php的文件
  2. 通过FTP或其他方式拷贝插件文件到/plugins/目录下
  3. 登陆AKCMS后台更新缓存,以完成插件的安装
  4. 在模板中书写标签,如果顺利的话标签已经能正常工作了

AKCMS模板插件开发说明

所谓模板插件其实是一个PHP程序,这个程序有如下特点:

  1. 以xxx.template.php命名文件名,xxx代表插件名,.template.php为固定文件名后缀。
  2. 程序中必须有名为xxx的方法,xxx与文件名的前缀必须相同。这个方法,接受一个数组参数,显示一段字符串。程序中还可以写其他方法,随意。
  3. 模板插件使用时的每一个参数会作为数组的一个键传入,参见举例。
例如:<{getgirls num="100" type="hot"}>这样的调用,getgirls.template.php这个程序中可以这样获得参数:
<?php
function getgirls($params) {
 $type = $params['type'];
 $num = $params['num'];
 echo "You got {$num} {$type} girls.";
}
?>
显示效果是:You got 10 hot girls.

能用模板插件做什么

模板插件可以重写网页的部分内容,也可以从外部获取信息,可以做非常多的事。以下举几个简单的例子(只是脑海中的例子,未实现,需要定制可以联系我):

1. 假设你的网站用城市作为栏目组织内容,可以实现在文章内容页显示当前城市的24小时天气预报。

<{getweather city=$categoryname hours="24"}>,如果这个内容属于“上海”栏目,则效果可能是这样的:上海24小时天气预报(晴转阴有小阵雨)

实现:获取城市名之后,通过第三天天气网站的接口获取天气预报的内容,同时格式化显示出来,要做得更好一些还可以支持expire属性,同一个城市一段时间内只采集一次,缓存没失效就不必远程调用。

2. 采集来的文章会被搜索引擎判为雷同抄袭,权重很低。假如某位高手想到了一个伪原创算法,就可以完美的解决这个问题。在正文模板里这样写:<{fuckdata data=$data}>,这样显示的正文就是混淆过的,搜索引擎就喜欢了。

3. 还可以实现简单的翻译功能,比如:正文模板中这样写:中文:< {$data}>

英文:<{translate sourcelanguage="chinese" targetlanguage="english" source=$data}>有些时候也可以用翻译功能欺负搜索引擎,让它以为是原创的。

4. 还可以调用百度的搜索建议、相关搜索。搜索一个词,输入第一个字后就弹出一个下拉的搜索建议,搜索一个词之后在页面最下方会给出相关搜索,这些都可以通过模板插件获取到,与akcms集成到一起

5. 网址类网站还可以利用模板插件获取网页的PRAlexa世界排名、site:domain网页数等等

支持SQLite数据库[ ]

从2.6版本起,AKCMS不再分成两个版本发布,只有一个版本的AKCMS,在安装的时候允许用户选择数据库类型。

从2.6.1版本起,AKCMS不管什么数据库导出的数据都是通用的,可以导入到另一个版本的数据库中,从而做到数据库迁移。

建议:内容没有超过1000都使用AKCMS的SQlite版本,能节省很多维护成本。最起码备份网站或者迁移网站的时候节省了很多成本:您只需要拷贝目录下的全部文件即可。而无需像MySQL版本那样分成文件和数据库分开进行。

PHP5.0-5.1.0不需要任何设置100%支持SQLite;PHP5.1.0-?需要手动开启。大部分的商业虚拟主机都支持SQLite而无需单独付费

AKCMS主题[ ]

主题可以理解为第二种分类方法。比如:笔记本可以从品牌分类,也可以按照价位区间分类。举例:http://www.shenzhouben.cn/

这个网站中就是用栏目来实现品牌名,主题来实现价位区间的。再比如:您如果是做电影网站还可以用栏目来实现“欧美电影、日韩电影”,用主题来实现电影的题材“喜剧片,文艺片”。总之,可以理解为另外一个维度的分类方法。

不是所有的网站都能用到这个功能,如果上面的说明您看不懂就忽略过去吧,以后用到的时候你能想起这个功能即可。

多编码与多语言[ ]

AKCMS支持UTF-8编码,您可以使用此编码搭建外文的网站或者面向国际用户的中文网站;AKCMS支持GBK编码,您可以搭建普通的中文网站。

AKCMS自带中英文两种语言包,国外用户也可以使用AKCMS。