《基于大数据平台的互联网数据采集平台基本架构》

优采云 发布时间: 2021-07-01 22:01

  《基于大数据平台的互联网数据采集平台基本架构》

  我简单介绍了【《基于大数据平台采集平台的互联网数据基本结构》。今天主要介绍一下采集的各个环节如何处理,需要注意哪些方面。

  废话少说,正文开始……

  第一:信息源系统

  其实就是采集task 管理系统,我们称之为源码管理系统。主要包括:

  1.任务模块:网站、栏目、搜索引擎、关键词、模板、公众号、微博博主等。

2.资源管理模块:服务器、项目、索引等;

3.监控模块:网站、栏目、搜索引擎、服务器、采集器等模块。

4.调度模块:采集器创建、部署、启动、关闭、删除等;

  下面简单介绍一下各个模块的功能和注意事项。

  1.任务模块

  (1)网站,栏目/频道管理

  在文章(《3人团队,如何管理10万采集网站?(最全面、最详细的解读)》)中有对网站的介绍,如何批量添加栏目,等等,不在这里累了。

  这里主要讲在配置网站和栏目时,如何过滤掉与公司业务无关的信息源。

  主要有两种方法。一种是人工筛选;另一种是设置过滤词;当配置的网站或列名收录单词时,系统会直接在后台过滤掉,不再进行常规的分析、存储等操作。

  例如,我们的主营业务是金融、证券、保险、银行等行业。那么我们的过滤词可以包括以下几类:

  ① 地区名称;如:中国、北京、上海等。

② 蔬菜、水果等名称;如:白菜、苹果等。

③ 体育、娱乐、电影、时尚、奢侈品等类型词。

④ 健康、人文、文艺、文史、历史、美食类。

⑤ 女性、育儿、教育、旅游、研究、法律法规、政策等频道。

  当网站/列在采集时,还有一个最重要的一点就是采集频率。首次配置时可以遵循以下规则:

  ① 中央级媒体:首页10分钟,一级频道15分钟;二级频道20分钟,其他30分钟;

② 省级媒体:首页15分钟;一级频道20分钟;二级频道30分钟;

③ 市县等地方网站:首页60分钟;一级频道120分钟;二级频道240~720分钟;

  以上是基本规则,配置需要根据实际情况进行分析处理。比如一些本地的网站,虽然不大,但是对业务的兼容度很高,而且每天发帖频繁,那么采集的频率可以设置为30分钟或者60分钟。

  网站/column采集加入正则化后,需要根据一段时间内的发帖规则自动分析采集的频率。这样,我们的服务器和其他资源的利用率就可以最大化,减少浪费。

  (2)搜索引擎管理

  虽然我们采集有很多网站,但与整个互联网相比,还是杯水车薪。那么,我们如何才能高效、低成本地获取我们需要的数据?

  搜索引擎是一个很好的补充。

  通过分析我们的产品和项目的业务需求,整理出相关的关键词,我们可以通过搜索引擎快速获取我们需要的部分数据。我们可以快速响应客户需求、改善用户体验并提供订单率。

  但是,有很多搜索引擎。为了让我们能够灵活地添加、删除、修改等,它们也需要集成到源系统中。同时,我们还可以随时监控源系统中的状态,实时调整采集策略。

  (3)关键词管理

  关键词配置,主要注意以下几点:

  ① 每个关键词必须与一个项目关联;

② 每个关键词都要记录下提供者姓名;

③ 关键词添加时,同样需要经过排除词进行处理。过滤词可以与网站/栏目配置的同步使用;

  (4)官方号

  对于微信公众号的文章采集,目前基于XPosed手机插件的采集方式实现批量的更稳定、快速、高效的方式。

  但是,这种方法也有很多缺点:

  ① 前期投入较大;

因为每个手机上只能安装一个XPosed插件,就只能hook一个微信号。而且每个微信号最多只能关注999个公众号,比如要监测100万公众号的话,就需要一千部手机。按一部手机800元,使用三年,第一年需要花费60万左右。加上10%损耗,平均35万/年。

② 微信号需求量大;

因为一个微信号最多只能关注999个公众号,如果要监测100万公众号,就需要一千个微信号,再加上10%的封号概率。第一年至少需要1100个微信号。

③ 运维较麻烦

主要体现在封号上。如果是临时封号的话,可以通过手机号解封。如果是永久封号,那就需要把当前微信号中关注的公众号,重新在其他微信号上进行关注监测了。这个过程需要二十天左右才能结束。

④ 公众号的关注比较麻烦

因为一个微信号一天只能关注四五十个公众号;

  为了处理账号被封的问题,我们在处理公众号时需要注意以下几点:

  ① 每个公众号必须在数据库中和微信号进行管理,

② 手机必须按一定的规律进行编号

③ 手机和微信号之间在数据中必须进行关联。

  (5)模板管理

  我们逐渐放弃了配置模板,倾向于通过训练自动处理。

  (6)微博博主管理

  由于微博搜索列表没有显示所有与搜索词相关的信息,需要同时监控一些博主,两者相辅相成。

  2.资源管理模块

  (1)服务器管理:

  对于做舆论或数据服务的公司,data采集至少涉及几十台服务器。为了了解这些服务器何时到期、更新和服务器配置,我们倾向于将服务器管理与任务调度一起设计,而不是使用云平台提供的控制终端。当然,网管也可以使用云平台控制终端查询和监控服务器的各项指标。

  (2)项目管理:

  搜索采集时,搜索词通常按照项目或产品的数据范围进行排序。所以在添加元搜索关键词的时候,一般是绑定到项目上的。因此,项目需要统一管理。

  (3)索引管理:

  

  由于采集的数据量很大,采集每天接收的数据量级至少有100万。因此,我们不可能将采集的所有数据长时间放在一个ES索引库中。

  在实际使用中,我们首先对信息进行分类。如:新闻、论坛、博客、微博、客户端、微信和纸媒等。如果采集有海外网站,可以添加外媒类型。

  虽然数据是按类型分类的,但不能总是将每种类型的数据都存储在一个索引中。因此,索引需要按照一定的规则生成。如按时间、每周或每月生成某种类型的索引。

  为了提高ES集群的工作效率,我们可以根据实际业务需要关闭比当前时间长的冷索引,比如关闭半年前生成的ES索引。这样既可以减少服务器内存和硬盘的浪费,也可以提高热索引的查询速度,提升产品的用户体验。

  同时,为了掌握ES集群中各个索引的情况,我们需要记录索引的创建时间、上次保存数据的时间、索引名称、索引类型、数据量、数据类型以及收录哪些字段。

  记录索引信息,一是方便了解当前各类数据的索引数据库;二是方便各种统计报表等所需数据的导出。

  3.监控模块

  

  网站、栏目、搜索引擎、服务器、采集器等监控不详述。上一篇《Data采集,如何建立有效的监控体系?》文章中有详细介绍,可以阅读。

  4.调度模块

  

  调度模块是运维管理中最重要的部分。

  在分布式海量数据采集中,网站、涉及采集的列或通道的数量级至少有10000、100,000,甚至数百万。所涉及的服务器范围从三到五台,到三到五十台,或三到五百台。每台服务器上部署多个采集器等。如此数量级的采集器运维,如果没有专门的系统来处理,是不可想象的。

  调度模块主要负责采集器的增减、部署/上传、启动、关闭等,实现一键部署,解放人力。

  第二:Data采集

  采集器在处理采集任务时,最重要的三个部分是:网页下载、翻页和数据分析。各部分加工中的注意事项如下:

  1.翻页

  在大量数据采集中,不建议设置翻页。主要是翻页信息的维护比较麻烦。为避免数据丢失,可适当提高采集频率,以补偿未翻页的影响。

  2.title

  标题一般在使用采集URL地址时使用A标签的值。然后在文本解析过程中执行第二次检查以纠正标题中可能存在的错误。

  3.发布时间处理

  发布时间分析难免会出现问题,但不能大于当前时间。

  一般在清除HTML源代码中的css样式、JS、注释、meta等信息后,删除HTML标签,以内容中的第一时间作为发布时间。

  一般可以统计一些发布时间指标,如:“发布时间:”、“发布日期”等,然后通过正则表达式,将标识符前后的100个字符串中的时间分别为获得作为发布时间。

  第三:数据质量

  1.Title 处理;

  标题一般容易出现以下三个问题:

  ① 以”_XXX网站或门户”结尾;

② 以“....”结束;

③ 长度小于等于两个字符;

  针对上述问题,我们可以通过list的title和body中的title进行二次校验来纠正。

  2.文本处理;

  文本一般以数据类型为准,可以注意以下问题:

  ① 新闻、博客、纸媒、客户端和微信等正文需大于10字符;

② 论坛和微博等内容大于0即可;

③ 注意由于解析异常,导致的内容中存在css样式数据;

④ 格式化数据。删除多余的“

  "、""、空行等

  3.统一数据传输接口:

  对于企业来说,有常规的采集,也有基于项目和产品的定制采集。并且有些项目或产品有很多自定义脚本。如果数据存储方式(或数据推送方式)不统一,一旦出现问题,排查起来难度极大。它还浪费时间并增加人工成本。

  统一的数据传输接口主要有以下优点:

  ① 异常前置,减少异常数据流入系统概率,提供用户体验;

② 数据质量监控,优化采集任务;

③ 多来源情况下数据排重,减少[数据分析](http://www.blog2019.net/tag/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?tagId=90)压力;

④ 减少数据持久化中存现的问题,提供工作效率;

  第四:统一开发模式

  舆论或者数据服务公司,data采集人比较多,技术水平参差不齐。为了减少各级人员开发过程中的BUG数量,可以细化采集的各个部分,定制耦合度较低的模块开发,然后做成第三方插件,分发并将它们安装在每个开发人员的环境中。这样可以大大降低开发中出现BUG的概率,有效提高工作效率。

  那么,哪些模块可以独立?

  ① 采集任务获取模块;

② 网页下载模块;

③ 发布时间、正文等解析模块;

④ 采集结果推送模块;

⑤ 采集监测模块;

  统一以上五部分代码后,至少可以节省40%的人力。

  第五:采集的痛点:

  1.网站改版****

  网站改版后,随之而来的是信息正则、翻页正则、采集template等失效,导致网站采集异常。不仅浪费资源,还影响采集的效率。

  特别是政府网站在过去一两年中进行了全国性的修订。有很多历史配置网站都采集没有更多数据。

  2.数据泄露采集

  数据缺失,在以下情况之一:

  ① 采集频率不对,导致信息跑到第二页等,无法采集到(因为采集翻页)

② 由于网站改版,导致信息正则或模板等配置异常;

③ 信息所在网站没有配置栏目,添加到采集任务队列;

④ 数据传输异常,导致数据丢失;如kafka异常,导致内存中所有数据丢失;

⑤ 网络抖动,导致正文采集异常;

  以上几个数据缺失的原因可以通过监控系统快速找到定位。由于监控系统的建立,可以参考之前发表的《Data采集,如何建立有效的监控系统?》一篇文章。

  第六:第三方数据平台

  如果你是个人,只要简单的采集一些数据写论文,或者这个测试什么的,那么这个文章看到这里就结束了;

  如果你是做舆论或数据分析的公司,第三方平台是很好的补充数据来源。一方面可以补充我们漏掉的数据,提升用户体验。另一方面,我们也可以从他们的数据中分析网站信息的来源,以补充我们自己的源数据库。

  主要的第三方平台或数据服务商如下:

  1.远哈SaaS平台

  元哈舆论其实就是新浪舆论。因此,元哈的微博数据应该是市场上最全面和时效性最强的。 网站,client,纸媒等类型的数据其实差不多,看投资的多少。一般

  2.iridium SAAS 平台

  3.智慧星光SaaS平台

  铱星和智慧星光的数据差不多,智慧星光稍微好一点。

  4.八友微信数据

  特点:微信公众号文章数据还可以,日流量在80万~150万之间,收费在市场上应该比较合适。如果您的公司有此需求,您可以与他们联系。微博等数据暂未对接,质量未知。

  我今天就讲这个。文笔不好,理解一下思路就好了。哈哈...

  如果还有其他采集相关问题,可以在下方公众号留言!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线