一套内容采集系统 解放编辑人员

内容采集系统,对于以内容为主的网站来说是非常好的助手,除了原创内容外,其它内容需要编辑人员或者采集系统来收集整理,然后添加到自己的网站里。Discuz DvBBS CMS等产品,内部都自带了一个内容采集功能,来采集指定的相关内容。 单客户端的火车头采集器也可以非常好的采集指定的内容。这些工具都是想让机器代替人工,把编辑人员从内容搬运的工作中解放出来,做一些更高端的工作,例如采集结果的内容微调,SEO优化,设定精确的采集规则,让采集的内容更加符合自己网站的需要。

下面的内容采集系统就是从这个想法开发而来的,这个采集系统由两个部分组成: 1.  编辑人员所使用的采集规则设定器和对采集结果进行审核、微调和发布所使用的Web站点。 2.  部署在服务器上的定时采集器和定时发送器。

首先由编辑人员通过一个采集规则设定器(NiceCollectoer.exe)设定要采集的站点,再等采集完成后,编辑人员再通过一个Web站点(PickWeb)对采集的结果进行审核、微调和优化然后发布到自己的网站上。编辑人员所需要做的是采集规则的设定,和对采集结果的优化,其它部分的工作都由机器完成。

NicePicker 是Html 分析器,用来抽取Url,NiceCollector 和HostCollector 都使用NicePicker来分析Html, NiceCollectoer 就是采集规则设定器,一个目标网站只用设定一次:

使用起来和最早的火车头采集器类似,这里使用博客园来做目标采集站点, 设定采集精华区的文章,采集规则非常简单:当编辑人员设定好采集规则后,这些规则会保存到NiceCollector.exe同目录下的 Setting.mdb中。一般当采集规则设定好以后,基本上不用再变动了,只在目标网站的Html Dom结构发生变化时,需要再次微调一下采集规则。NiceCollector同时用于新目标采集站点的设定和添加操作。 等编辑人员完成采集规则的设定后,把Setting.mdb放到 HostCollector.exe下, HostCollector 会根据Setting.mdb的设定进行真正的采集,并把采集的结果存入数据库。

到这一步就完成了内容的采集工作,编辑人员可以打开PickWeb,对采集结果进行微调和优化,然后审核通过并发送到自己的网站上:

真正发送采集结果到自己网站的工作不是由PickWeb完成的,编辑人员完成内容审核后,PostToForum.exe 会读取数据库并发送这条通过审核的采集结果到自己的网站上,在自己的网站上当然需要一个. ashx或者某种其它方式来接收采集的结果,不建议PostToFormu.exe直接去操作自己网站的数据库,最好通过自己网站上的某个API,来接收采集结果。

NiceCollectoer, HostCollector, PickWeb, PostToForum, 这几个程序联合工作,基本上已经完成了采集和发送的工作,HostCollector, PickWeb, PostToForum 是部署在服务器上的,HostCollector需要被周期性的调用,来采集目标网站所产生的新内容,HostRunnerService.exe 是一个Windows Service,用来周期性调用HostCollector,使用管理员身份在控制台下运行 installutil / i HostRunnerService.exe 就可以安装这个Windows Service了:

HostRunnerService 的配置也很简单:

在RunTime.txt 中设定每天定时采集几次:

当新内容被采集后,编辑人员需要定期的登录PickWeb,来优化、微调、并审核新内容,也可以设定默认审核通过。同样PostToForum 也需要被周期性的调用,用来发送审核通过的新内容,CallSenderService.exe 与 HostRunnerService.exe类似,也是一个Windows Service,用来定期的调用PostToFormu.exe。

到这里整个系统基本上完成了,除此之外还有两个小东东: SelfChecker.exe 和HealthChecker.exe。 SelfCheck.exe 是用来检查Setting.mdb中设定的规则是否是一个有效的规则,例如检查采集规则是否设定了内容采集项。HealthChecker.exe用来收集HostCollector.exe 和 PostToForum.exe 所产生的log,然后将log发送给指定的系统维护人员。

这个内容采集系统还有很多地方需要改进和优化,现在的状态只能说是个Prototype吧,例如 NicePick 需要进一步抽象和重构,给出更多的Interface,把分析Html的各个环节插件化,在各个分析步骤上,可以让用户加载自己的分析器。 在NiceCollector上,需要更多更全面的采集规则设定。在PickWeb上可以加入一些默认的SEO优化规则,如批量SEO优化Title的内容,等其它方面吧。

可执行文件下载:

08_453455_if8l_NROutput.rar(链接已更新)

源代码下载:

08_234324_if8l_NiceCollector.rar (链接已更新)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏韩伟的专栏

经典软件架构模式(完)

如何选择架构模式 上面我们探讨了6种经典的架构模式,那么在实践中,我们到底应该如何选择呢?在次我们可以用一个案例来初步的讨论。 我们的案例是开发...

46230
来自专栏MelonTeam专栏

Android短视频边下边播详解

短视频作为一种常见的富媒体信息载体已经在移动互联网上得到非常普遍的应用,比如Snapchat、微信、手Q日迹等。由于手机网络流量珍贵且带宽有限,应用通常不会直接...

1.7K110
来自专栏EAWorld

聊聊前端工程化的实践与未来

2017年的前端发生了非常多的事情。快速的技术进步,似乎已经使前端工程师应接不暇,我们来一起看下去年发生了哪些事件:

14620
来自专栏高性能服务器开发

1 游戏服务器开发的基本体系与服务器端开发的一些建议

近年来,我身边的朋友有很多都从web转向了游戏开发。他们以前都没有做过游戏服务器开发,更谈不上什么经验,而从网上找的例子或游戏方面的知识,又是那么的少,那么的零...

78830
来自专栏直播系统开发

专业直播APP开发服务商教你直播平台搭建需要准备些什么——流媒体CDN服务篇

网络直播可谓是近年来互联网的“热门关键词”,如今直播平台已经深入到了各行各业,诞生了数不尽的行业解决方案。这些解决方案都离不开直播系统源码,通过一套功能全面的直...

44940
来自专栏Java架构

了解为什么要使用微服务!

单体应用就是将应用程序的所有功能都打包成一个独立的单元,最终以一个WAR包或JAR包存在,没有外部的任何依赖,里面包含DAO、Service、UI等所有的逻辑。...

27130
来自专栏知晓程序

如何删除小程序缓存 / 小程序列表能同步吗 / 追剧小程序推荐 | 小程序问答 #11

不知道有多少人在用微信谈工作?每次向对方用纯文字介绍自己的时候,都觉得低效又不美观。

13530
来自专栏友弟技术工作室

CI持续集成介绍

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。 ? 一、概念 持续集成...

47290
来自专栏java一日一条

Java开发熟手该当心的11个错误

生产过程中出现的问题正逐渐得到中层和最高管理层的重视。不管是身为开发人员还是架构师,下列的事项都应该得到你足够的重视以避免陷入未来的尴尬境地。你也可以把它作为...

7130
来自专栏杨建荣的学习笔记

使用shell批量监控磁盘坏块(一)(r7笔记第48天)

硬件的监控其实还是蛮重要的,这个部分在嘉年华中也着重强调过,不过做起来确实还是有一些难度,我们也尝试了一些方法,最终准备两条腿走路,一边使用中控的方式来统一监控...

35650

扫码关注云+社区

领取腾讯云代金券