人类的发展,经过了猿到人的发展。工业发展经历了石器时代、工业时代、智能工业的发展。
采集也经历了从单点到多点,再到分布式的发展。采集源也从10个、100、1000个,再到1W、5万、10万的发展。那么这么多网站,我们怎么能保证它们一直有效(网站能够正常打开)呢?
时代在进步,公司在不断发展壮大,网站的内容也在不断的丰富,每年、每月都会有新的栏目上架,有旧栏目下架。我们又如何保证我们采集的栏目时刻有效呢?
今天,我就结合我这几年做采集的经验,来给大家分享一下我的处理过程。
第一:构建信源系统
由于我们是做舆情监测服务的,所以我们采集的覆盖度还是比较广的,包括我们业务所在行业的所有网站(尽量全),以及国家发布的一二级主要媒体,各类党媒、纸媒、app等,以及微博、微信、论坛等社交类网站。
网站、栏目管理
现在我们采集覆盖的网站大约有6W家左右,每天都还在不断的增加,这么大量的网站量,我们该如何来管理呢?这就是信源系统的价值所在!
我们把需要采集的网站,以及这些网站下需要采集的频道或栏目都在信源系统中统一管理。同时,一些网站的媒体分类、行业分类、网站类型等,均在系统中统一管理。
同时,为了提高网站、栏目等配置效率,我们支持直接把栏目所在HTML源码拷贝到系统中,然后自动分析出栏目名称、栏目URL、栏目下数据的正则表达式等数据。通过这样的优化,以前每人一天配置20个左右的网站,提升到现在100个以上。
关键词搜索
数据采集,除了直接采集发布信息的网站,另一个快速获取数据的方式,就是通过关键词,在各大搜索引擎中进行搜索采集,比如:百度、搜狗、360等公司的搜索引擎。
信源系统中,除了可以管理上面两类采集源以外,还可以管理服务器、部署的采集器等。因为大批量采集时,有上百台服务器,每个服务器上部署三五个、甚至一二十个爬虫,这些爬虫的上传、部署、启动、关闭等也是一个及其耗费时间和精力的事情。通过系统统一管理,能够大幅度的减少部署、运维的时间,减少很多的成本。
第二:构建网站监控体系
这一部分主要包括两部分:一是网站或栏目状态的监控(能够正常访问);另一个是信息正则的监控;
网站、栏目的状态监控
1:自动化
一般情况下,就是通过自动化的方式,每个两周或一个月检查一遍所有的网站。
然后把返回状态码不是200的,再次做第二和第三次检查,其目的主要是为了防止因为网络问题、或网站响应问题,导致的监测失效,加大人工二次处理的时间;
根据检验码,删除404、403等类型,502、域名未备案等类型过一段时间再次校验。但是记得同步关闭这些网站的采集,否则会大幅度降低采集的效率。
2:通过结果数据
如果你有10W个网站,每次进行自动校验,也是一个比较费时的事情。为了提高效率,我们可以结合采集的结果进行处理。我们先从采集的结果数据中,分析出哪些栏目最近一周没有采集到数据,然后自动校验这些网站,效率会提高很多。
3:爬虫监测
当然,我们也可以在爬虫数据,解析HTML源码是就对其进行标记,如果网站没有响应,直接保存该任务的ID,然后在信源系统中进行标记,运维人员就可以实时的看到网站的状态,及时处理,提高数据采集的效率。
同时,如果网站正常返回数据,但是没有解析出信息,则可以任务是正则异常,或者也可能是网站异常。需要进行二次检测。
正则表达式的校验
正如上面说的,在采集时,我们就可以记录通过当前栏目或网站,是否根据现有的正则表达式解析出数据,如果没有,则在信源系统中对应的栏目上进行标识。
同时需要建立一个自动识别栏目正则表达式的服务,每个一段时间(比如30分钟)读取一次标识的记录,自动识别其正则表达式,同时同步到采集队列。
为了保证正则表达式获取的无误,在自动识别同步到采集队列以后,如果仍然未匹配出信息。这时,就需要系统提示运维人员进行人工分析了。
第三:数据补录
在舆情监测中,不管你覆盖的采集有多广,总会有那么一个犄角旮旯的数据,你没有采集,偏偏可以看到那了。这时,问了提高客户体验,我们需要抓紧的人工进行补录到系统,然后呢?
然后我们首先要分析我们的网站是否配置,栏目是否配置正确,然后正则表达式是否正确。通过这几步骤的检查,一定能够发现漏采的原因。根据原因,优化信源或完善采集器。
数据补录,不急可以及时的减少客户的不满,同时能够完善信源和采集,从而使采集达到闭环。
第四:自动化
第一:智能识别采集频率
现在我们的网站、栏目的采集频率还是固定频率,这样一些信息更新比较低的网站、或栏目的无效采集,会大幅度降低采集的效率。从而导致信息更新频繁的网站或栏目采集延迟,降低了数据的价值。
我们现在正在根据每个网站或栏目以采集的数据的发布时间分布情况,统计分析一个比较合适的采集频率,最大化的减少服务器资源的浪费,提高采集的效率,最大化数据价值。
第二:智能识别网站栏目
我们现在 采集的网站有6W左右,栏目大概有70W。这6W个网站,每天都有很多网站升级改版,大量的新栏目上架,旧栏目下架,单凭3个人的运维团队,根据不可能完成这些工作量。
所以,我们根据这6W个网站中已配置的栏目,对其进行训练,然后对网站每周进行一次分析,自动识别出其中的栏目。然后,过滤掉和我也业务不相关的栏目,最后在进行一次人工的抽检,最后发布到采集队列中进行采集。通过这种方式,我们的运维团队从原来的9人,减少到现在的3人。而且还能够保证采集的稳定、高效。
大数据盛行的今天,一切分析的基础都是数据。
人工智能时代的到来,一切人能做的事情,或多或少都有一部分是机器可以替代的。
那么,30、50年以后,机器人能打败人类吗?哈哈.....