进行数据采集的方法是什么

刘佳 1851

数据采集的方法有以下5种:1.软件接口方式;2.开放数据库方式;3.基于底层数据交换的数据直接采集方式;4.系统日志采集方法;5.网络数据采集方法;6.实时采集;7.request方法;8.用selenium模拟浏览器;9.用scrapy进行分布式高速采集;10.PySpider。其中”软件接口“这种数据采集方式是指各个软件厂商提供数据接口,实现数据采集。软件接口方式的数据可靠性与价值较高,一般不存在数据重复的情况。

一、软件接口方式

各个软件厂商提供数据接口,实现数据采集汇聚。接口对接方式的数据可靠性与价值较高,一般不存在数据重复的情况;数据通过接口实时传输,满足数据实时性的要求。接口开发费用高;协调各个软件厂商,协调难度大、投入人力大;扩展性不高,如:由于业务需要各软件系统开发出新的业务模块,其和大数据平台之间的数据接口也需做相应修改和变动。

二、开放数据库方式

实现数据的采集汇聚,开放数据库是最直接的一种方式。开放数据库方式可以直接从目标数据库中获取需要的数据,准确性高,实时性也能得到保证,是最直接、便捷的一种方式。但开放数据库方式也需要协调各个软件厂商开放数据库,难度大;一个平台如果同时连接多个软件厂商的数据库,并实时获取数据,这对平台性能也是巨大挑战。不过,出于安全性考虑,软件厂商一般不会开放自己的数据库。

三、基于底层数据交换的数据直接采集方式

通过获取软件系统的底层数据交换、软件客户端和数据库之间的网络流量包,基于底层IO请求与网络分析等技术,采集目标软件产生的所有数据,将数据转换与重新结构化,输出到新的数据库,供软件系统调用。基于底层数据交换的数据直接采集方式,摆脱对软件厂商的依赖,不需要软件厂商配合,不仅需要投入大量的时间、精力与资金,不用担心系统开发团队解体、源代码丢失等原因导致系统数据采集成死局。

四、系统日志采集方法

很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe等。这些系统采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求,例如,Scribe日志收集系统,能够从各种日志源上收集日志,存储到一个中央存储系统上,以便于进行集中统计分析处理,它为日志的“分布式收集,统一处理”提供了一个可扩展的、高容错的方案。

五、网络数据采集方法

网络数据采集是指针对通过爬虫或网站公开api等方式从网上获取互联网中相关网页内容的过程,并从中抽取出用户所需要的属性内容。互联网网页数据处理,就是对抽取出来的网页数据进行内容和格式上的处理、转换和加工,使之能够适应用户的需求,并将之存储下来,供以后使用。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。

六、实时采集

实时采集主要用在考虑流处理的业务场景,比如,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和 web 服务器记录的用户访问行为。在流处理场景,数据采集会成为Kafka的消费者,就像一个水坝一般将上游源源不断的数据拦截住,然后根据业务场景做对应的处理,之后再写入到对应的数据存储中。这个过程类似传统的ETL,但它是流式的处理方式,而非定时的批处理Job,些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

七、 request方法

用python的request方法,直接原生态代码,python有很多现存的库直接可以调用,比如做个简单爬虫,几行代码就可以搞定了,核心代码如下:

import requests #引用reques库

response=request.get(‘https://www.volcengine.com/’)#用get模拟请求

print(response.text) #已经采集出来了

八、用selenium模拟浏览器

selenium是一个专门采集反爬很厉害的网站经常使用的工具,它主要是可以模拟浏览器去打开访问需要采集的目标网站了,比如需要采集天眼查或者企查查或者是淘宝、58、京东等各种商业的网站,那么这种网站服务端做了反爬技术了,用python的request.get方法就容易被识别,被封IP。对数据采集速度要求不太高,是非常适合的。

九、用scrapy进行分布式高速采集

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。scrapy 特点是异步高效分布式爬虫架构,可以开多进程 多线程池进行批量分布式采集。 比如想采集1000万的数据,可以多设置几个结点和线程。Scrapy也有缺点的,它基于 twisted 框架,运行中的 exception 是不会干掉 reactor(反应器),并且异步框架出错后 是不会停掉其他任务的,数据出错后难以察觉。

十、PySpider

PySpider框架是一支新秀。它采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器、任务监视器、项目管理器以及结果查看器。 PPySpider的特点是ython脚本控制,可以用html解析包,Web界面编写调试脚本、起停脚本、监控执行状态、查看活动历史,并且支持RabbitMQ、Beanstalk、Redis和Kombu作为消息队列。


回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部