先前简单的介绍了一下《基于大数据平台的互联网数据采集平台基本架构》,今天主要介绍一下采集的各个环节中,应该如何处理,应该注意哪些方面数据采集。
废话不多说了数据采集,正文开始.......
第一:信源系统其实就是采集任务管理系统,我们叫信源管理系统数据采集。主要包括:
1. 任务模块:网站、栏目、搜索引擎、关键词、模板、公众号、微博博主等数据采集。
2. 资源管理模块:服务器、项目、索引等;
3. 监控模块:网站、栏目、搜索引擎、服务器、采集器等模块数据采集。
4. 调度模块:采集器创建、部署、启动、关闭、删除等;
下面对各个模块的作用、注意事项等做个简单的介绍数据采集。
1. 任务模块(1) 网站、栏目/频道管理 先前在(《3人团队,如何管理10万采集网站?(最全、最细解读)》)一文中,有介绍网站、栏目如何批量添加等,这里就不在累述数据采集。
这里主要说一下如何在配置网站、栏目时,过滤掉与公司业务无关的信源数据采集。
其方法主要有两种数据采集。一是人工筛选;二是设置过滤词;当配置的网站或栏目的名称中包含词,则系统后台直接过滤掉,不再进行正则解析、保存等。
比如,我们的主要业务是金融、证券、保险、银行等行业数据采集。那么我们的过滤词可以包含以下几类:
① 地区名称;如:中国、北京、上海等数据采集。
② 蔬菜、水果等名称;如:白菜、苹果等数据采集。
③ 体育、娱乐、电影、时尚、奢侈品等类型词数据采集。
④ 健康、人文、文艺、文史、历史、美食类数据采集。
⑤ 女性、育儿、教育、旅游、研究、法律法规、政策等频道数据采集。
网站/栏目在采集时数据采集,还有一个最重要的点就是采集频率,在首次配置时可以遵循以下规律:
① 中央级媒体:首页10分钟数据采集,一级频道15分钟;二级频道20分钟,其他30分钟;
② 省级媒体:首页15分钟;一级频道20分钟;二级频道30分钟;
③ 市县等地方网站:首页60分钟;一级频道120分钟;二级频道240~720分钟;
上面是基本规律,配置时还需要根据实际情况,具体分析处理数据采集。如一些地方性网站,虽然小,但是和业务贴合度高,且每日发文也较频繁,那么就可以把采集频率设置为30分钟或者60分钟。
在网站/栏目采集加入常规化以后,就需要根据一段时间内的发文规律,自动分析出采集频率数据采集。这样,可以使我们的服务器等资源的利用率,达到最大化,减少浪费。
(2) 搜索引擎管理
虽然说我们采集了很多网站,但是相对于整个互联网来说,还是九牛一毛数据采集。那么,我们能够通过什么方式,高效、低廉的获取我们所需要的数据呢?
搜索引擎是一个很好的补充数据采集。
通过分析我们产品、项目的业务需求,整理出相关的关键词,就能够通过搜索引擎,很快的获取到我们需要的一部分数据了数据采集。我们就能够较快的响应客户的需求,提高用户体验,提供下单率。
但是,搜索引擎比较多,为了我们能够灵活的进行添加、删除、修改等,同样需要集成到信源系统数据采集。同时,我们也能够在信源系统中,随时监控状态,实时调整采集策略。
(3) 关键词管理
关键词的配置数据采集,主要注意以下几点:
① 每个关键词必须与一个项目关联;
② 每个关键词都要记录下提供者姓名;
③ 关键词添加时,同样需要经过排除词进行处理数据采集。过滤词可以与网站/栏目配置的同步使用;
(4) 公众号对于微信公众号的文章采集,就目前来说,能够实现批量,且较稳定、快速、高效的方法,就是基于手机XPosed插件的采集方式数据采集。
不过数据采集,该方式也存在不少缺点:
① 前期投入较大;
因为每个手机上只能安装一个XPosed插件,就只能hook一个微信号数据采集。而且每个微信号最多只能关注999个公众号,比如要监测100万公众号的话,就需要一千部手机。按一部手机800元,使用三年,第一年需要花费60万左右。加上10%损耗,平均35万/年。
② 微信号需求量大;
因为一个微信号最多只能关注999个公众号,如果要监测100万公众号,就需要一千个微信号,再加上10%的封号概率数据采集。第一年至少需要1100个微信号。
③ 运维较麻烦
主要体现在封号上数据采集。如果是临时封号的话,可以通过手机号解封。如果是永久封号,那就需要把当前微信号中关注的公众号,重新在其他微信号上进行关注监测了。这个过程需要二十天左右才能结束。
④ 公众号的关注比较麻烦
因为一个微信号一天只能关注四五十个公众号;
为了应对封号问题数据采集,我们在处理公众号时,需要注意以下几点:
① 每个公众号必须在数据库中和微信号进行管理数据采集,
② 手机必须按一定的规律进行编号
③ 手机和微信号之间在数据中必须进行关联数据采集。
(5) 模板管理我们现在已经逐渐放弃配置模板,倾向于通过训练自动处理了数据采集。
(6) 微博博主管理由于微博的搜索列表中,并未显示搜索词相关的所有信息,所以需要同时监测一部分博主,二者相互补充数据采集。
2. 资源管理模块(1) 服务器管理:做舆情或者数据服务的公司,数据采集涉及到的服务器至少也得几十台数据采集。为了便于掌握这些服务器什么时候到期、续费、以及服务器配置等情况,我们倾向于把服务器的管理,同任务调度一起设计,不使用云平台提供的控制端。
当然,网管可以使用云平台控制端,进行查询、监测服务器各项指标数据采集。
(2) 项目管理:在做搜索采集时,搜索词一般是根据项目或者产品的数据范围整理而来数据采集。所以,在添加元搜索关键词时,一般与项目绑定。所以,项目也就需要统一管理了。
(3) 索引管理: 由于大批量数据采集中,每天采集到的数据量级至少在百万数据采集。所以,我们不可能把很长一段时间内采集下来的数据,全都放在一个ES索引库中。
我们在实际使用中,首先把信息分类数据采集。如:新闻、论坛、博客、微博、客户端、微信和纸媒等,如果采集有国外网站,可以加一个外媒类型。
虽然把数据按类型进行了归类,但是每一类数据也不可能始终存放在一个索引中数据采集。所以,还需要对索引按某一规律进行生成。如按时间,每周或者每月生成一个某一类型的索引。
为了提高ES集群的工作效率,我们可以根据实际业务需求,关闭距当前时间较长的冷索引,比如关闭半年以前生成的ES索引数据采集。这样能够减少服务器内存、硬盘的浪费,也能够提高热索引的查询速度,增强产品的用户体验。
同时,为了掌握ES集群中每个索引的情况,我们需要记录索引的创建时间、最后一次保存数据时间、索引名称、索引类型、数据量、数据类型、以及包含哪些字段等数据采集。
记录索引信息,一是为了方便了解当前各类型数据所在索引库;二是为了便于各类统计、报告所需数据导出等数据采集。
3. 监控模块
网站、栏目、搜索引擎、服务器、采集器等监控就不在累述,先前的《数据采集中,如何建立一套行之有效的监控体系?》一文中有详细的介绍,大家可以翻看一下数据采集。
4. 调度模块
调度模块是运维管理中最为重要的部分数据采集。
分布式大批量数据采集中,涉及到采集的网站、栏目或频道的数量级至少是万级、十万级,更有甚者是百万级数据采集。
涉及到的服务器少则三五台,多则三五十台,亦或是三五百台数据采集。每台服务器上又部署多个采集器等,
如此数量级采集器的运维,没有一个专门的系统来处理,那是无法想象的数据采集。
调度模块主要负责采集器的增减、部署/上传、启动、关闭等,从而实现一键式部署,解放人力数据采集。
第二:数据采集采集器在处理采集任务中,最重要的三部分是:网页下载、翻页、数据解析数据采集。其中各部分处理中需要注意的事项如下:
1. 翻页在大批量数据采集中,不建议设置翻页数据采集。主要是翻页信息的维护比较麻烦。为了不漏采数据,可以适度的增加采集频率,来弥补未翻页带来的影响。
2. 标题标题一般使用采集URL地址时A标签的值数据采集。然后在正文解析时进行二次校验,来纠正标题可能存在的错误。
3. 发布时间处理发布时间解析难免会出问题,但是绝对不能大于当前时间数据采集。
一般是清除HTML源码中css样式、JS、注释、meta等信息后,删除HTML标签,取内容中第一个时间作为发布时间数据采集。
一般可以统计一些发布时间标识,如:“发布时间:”,“发布日期”等数据采集。然后,通过正则表达式,获取该标识前后100个长度的字符串中的时间,作为发布时间。
第三:数据质量1. 标题处理;
标题一般容易出现以下三个问题:
① 以”_XXX网站或门户”结尾;
② 以“....”结束;
③ 长度小于等于两个字符;
针对上面的问题,我们可以使用列表标题与正文中的标题进行二次校验来纠正数据采集。
2. 正文处理;正文一般按数据类型数据采集,可以注意以下问题:
① 新闻、博客、纸媒、客户端和微信等正文需大于10字符;
② 论坛和微博等内容大于0即可;
③ 注意由于解析异常数据采集,导致的内容中存在css样式数据;
④ 格式化数据数据采集。删除多余的“\n”、“\t”、空行等。
3. 统一数据传输接口: 对于公司来说,有常规采集,还有基于项目、产品进行的定制采集数据采集。并且有些项目或产品定制脚本较多,如果数据保存方式(或者数据推送方式)不统一,一旦出现问题,就极难排查。而且还浪费时间、增加人力成本开销。
统一数据传输接口主要有以下优点:
① 异常前置数据采集,减少异常数据流入系统概率,提供用户体验;
② 数据质量监控数据采集,优化采集任务;
③ 多来源情况下数据排重数据采集,减少数据分析压力;
④ 减少数据持久化中存在的问题数据采集,提供工作效率;
第四:统一开发模式舆情或数据服务公司,数据采集人员相对较多,技术水平参差不齐数据采集。为了减少各级人员开发过程中的BUG量,可以提炼采集各个部分中,耦合较低的模块定制开发,然后制作成第三方插件,下发并安装到各开发人员的环境中。这样可以极大地减少开发中BUG的概率,有效地提供工作效率,
那么数据采集,哪些模块可以独立出来呢?
① 采集任务获取模块;
② 网页下载模块;
③ 发布时间、正文等解析模块;
④ 采集结果推送模块;
⑤ 采集监测模块;
通过对上面这五部分代码进行统一以后,至少可以节省40%的人力数据采集。
第五:采集的痛点:1. 网站改版网站改版以后,随之而来的就是信息正则、翻页正则、采集模板等失效,导致网站采集异常数据采集。不仅浪费资源,还会影响采集的效率。
尤其是最近一两年政府性网站,进行了一次全国性的大改版,历史配置的好多网站都采集不到数据了数据采集。
2. 数据漏采 数据漏采数据采集,情况下就是下面的其中一种:
① 采集频率不对数据采集,导致信息跑到第二页等,无法采集到(因为采集翻页)
② 由于网站改版数据采集,导致信息正则表达式或模板等配置异常;
③ 信息所在网站没有配置栏目数据采集,添加到采集任务队列;
④ 数据传输异常数据采集,导致数据丢失;如kafka异常,导致内存中所有数据丢失;
⑤ 网络抖动数据采集,导致正文采集异常;
上面的几个导致数据漏采的原因,都可以通过监测体系,很快的发现并定位问题数据采集。由于监控体系的建立,可以参考先前发表的《数据采集中,如何建立一套行之有效的监控体系?》一文。
第六:第三方数据平台如果你是个人数据采集,只是简单的采集一些数据写个论文,或这个测试什么,那这篇文章看到这里就可以结束了;
如果你是做舆情或者数据分析的公司,第三方平台则是一个很好的数据补充来源数据采集。一方面,可以补充我们漏采的数据,提高用户体验。另一方面,还可以从他们的数据中,分析出信息的来源网站,补充我们自己的信源库。
主要的第三方平台或数据服务商有以下几个:
1. 远哈SaaS平台远哈舆情其实就是新浪舆情通数据采集。所以,远哈的微博数据应该是市面上最全、时效性最好的了。网站、客户端、纸媒等类型数据其实都差不多,就看投入的多少了。一般
2. 铱星SAAS平台3. 智慧星光SaaS平台铱星和智慧星光的数据都差不多,智慧星光的稍微好一点数据采集。
4. 八友微信数据特点:微信公众号文章数据还可以,每天的量在80~150万之间,他们的费用应该是市面上比较合适的数据采集。如果你们公司有这个需求,可以对接他们。微博等其他数据,暂时未对接过,质量如何不得而知了。
今天就说这些了数据采集。文笔不好,大家了解一下思路就好。哈哈......
大家要是有其他采集相关的问题想了解的数据采集,可以在评论区留言一起讨论啊!
添加上方▲技术, 在线咨询
复制微信号
声明
一、本站原创内容,其版权属于本网站所有。其他媒体、网站或个人转载使用时不得进行商业性的原版原式的转载,也不得歪曲和篡改本网站所发布的内容。如转载须注明文章来源。
二、本网站转载其它媒体作品的目的在于传递更多信息,并不代表本网站赞同其观点和对其真实性负责;如侵犯你的权益请告诉我们立即删除;其他媒体、网站或个人转载使用自负法律责任。
发表评论
2021-11-15 18:38:49回复
2021-11-15 20:41:13回复