PHPCMS问吧采集程序

尘缘于3年前开发了DEDE的问答程序发布接口,受到不少用户好评。

因为此接口是尘缘早期的接口,技术与代码规范尚不成熟,加上DEDE的模型设计并不十分优秀,所以,一直想用PHPCMS来创建一个负载量好的问答自动采集程序。

这段时间受用户委托,开发了这样一个程序,现将一些思路和功能展示于后。

  1. 要实现无人值守,无须开机,自动采集更新问题,添加问题回复,添加问题最佳答案;
  2. 同步实现问答栏目自动创建,用户自动创建;
  3. 实现采集过程缓存化,以实现快速除重并更新已有问题
  4. 智能判断问题状态,如果问题已经存在、回答已经存在、问题过期或者已经解决的分析

经过一定时间的研究,已经将上述功能一一实现,以下列出一定的技术思路

  1. 使PHP能在用户关闭浏览器的状态下继续执行程序,不限制超时,这样可以让PHP程序在服务器上不间断执行采集过程;
  2. 添加事件触发功能,当PHP后台程序检测到停止运行的命令时,停止后台运行,并释放资源;
  3. 添加问题时,将问题编号和回复编号做为缓存条件,最佳答案以发布时间为判断条件实现数据自动更新

以上核心功能实现以后,就是按部就班的开发其它小功能了,如添加栏目,添加问题,添加用户,添加回答等。

火车群里有部分同志给我建议加上一个多语言翻译和生成静态的功能,那稍后也会考虑慢慢加上这个功能。

经过数天的开发,我发现PHPCMS真的模型设计比较合理,相当DEDE来说,确实在不同的层次,二次开发非常容易,我接触到的几个功能,基本上无需拿PHPCMS核心代码开刀。PHPCMS的模块开发非常容易,开发过程真的很简单,很惬意。

这么几年一直没用PHPCMS,这里表示下对自己的遗憾。

以下是采集程序的安装方法:

安装方法:
1,登陆PHPCMS后台,安装问答模块,设置Ucenter通行证
2,将c.sql中的SQL在Mysql中执行一下,注意表前缀请根据实际情况修改,默认为phpcms_
3,将压缩包中所有文件上传到phpcms/Ask目录下
4,使用浏览器访问phpcms/ask/control.php或者在模板中使用Js调用phpcms/ask/control.php

使用说明:
1,本程序理论上可以365天无人值守运行,但遇到采集出错、数据为空、服务器当机等情况,需要人工重新启动采集进程,可以使用浏览器访问phpcms/ask/control.php
2,如果在模板中使用Js调用则可以避免上述问题,调用方法为
3,程序自动根据问题所属分类,自动创建多级分类,请定期登陆后台手工更新问吧栏目缓存

注意事项:
1,当百度知道的采集规则发生变化时,请不要继续采集操作,以免采集到错误的数据
2,有问题请联系尘缘,QQ:130775

程序开发半个月完成,部署到客户服务器上以后,出现了线程问题、内存占用等问题,经过一个月的跟踪修复,目前这套程序运行正常。然后尘缘才敢拿出来叫卖。

目前程序只能采集百度知道,详细功能如下:

  1. 全自动采集入库功能:实时循环采集问题,问题回复,可以准确采集用户信息和时间;
  2. 全自动跟踪更新功能:可以跟踪问题解决状态,添加最佳答案,解决问题;
  3. 个性化需求采集功能:可以自定义采集分类、问题类型,采集线程和间隔时间;
  4. 全程无人值守采集,无需人工干预,需要了解购买程序的同学请加QQ:130775。

程序效果预览:

《PHPCMS问吧采集程序》有5个想法

发表评论

电子邮件地址不会被公开。