数据采集

时间:2024-04-07 16:15:57

    数据分析的前提就是数据的数量和质量。今天介绍几种数据源和数据的采集方式。
    从数据采集角度,数据源分为开放数据源、爬虫抓取、日志采集、传感器,四类数据源。
数据采集
    开放数据源和爬虫听得比较多(主要是我听得比较多),所以简单说一下传感器和日志采集。传感器是基于特定的设备,将设备采集的信息进行收集。基本采集的是物理信息,如图像、视频或某物体的速度、热度、压强等。日志采集是统计用户的操作。可以在前端埋点,在后端进行脚本收集、统计来分析网站的访问情况,以及使用瓶颈。下面列举一些开放的数据源。
数据采集

如何用爬虫抓取数据

    爬虫抓取应该属于最常见的需求,比如你想要餐厅的评价数据。当然这里要注重版权问题,而且很多网站也是有反爬机制的。最直接的方法就是使用 Python 编写爬虫代码,当然前提是你需要会Python的基本语法。除此之外,PHP 也可以做爬虫,只是功能不如Python完善,尤其是涉及到多线程的操作。
在 Python 爬虫中,基本上会经历三个过程。
1.使用 Requests 爬取内容。我们可以使用Requests库来抓取网页信息。Requests 库可以说是 Python爬虫的利器,也就是Python的HTTP库,通过这个库爬取网页中的数据,非常方便,可以帮我们节约大量的时间。
2.使用 XPath 解析内容。XPath是XML Path的缩写,也就是XML路径语言。它是一种用来确定XML文档中某部分位置的语言,在开发中经常用来当作小型查询语言。XPath 可以通过元素和属性进行位置索引。
3.使用 Pandas 保存数据。Pandas是让数据分析工作变得更加简单的高级数据结构,我们可以用 Pandas 保存爬取的数据。最后通过 Pandas 再写入到 XLS 或者 MySQL 等数据库中。
    Requests、XPath、Pandas是Python的三个利器。当然做Python爬虫还有很多利器,比如Selenium,PhantomJS,或者用Puppteteer这种无头模式。
另外我们也可以不编程就抓取到网页信息,这里介绍三款常用的抓取工具。

火车采集器(http://www.locoy.com/)

    火车采集器有十几年的历史了,不仅可以做抓取工具,也可以做数据清洗、数据分析、数据挖掘和可视化等工作。数据源适合绝大部分的网页,网页中能看到的内容都可以通过采集规则进行抓取。

八爪鱼(https://www.bazhuayu.com/)

    八爪鱼也是知名的采集工具。他有免费的采集模板和云采集(付费)。免费的采集模板实际上是内容采集规则,包括电商类、生活服务类、社交媒体类和论坛类的网站,也可以自定义任务。云采集是当配置好采集任务后,八爪鱼云端进行采集,通过云端多节点并发采集,速度远远超过本地,可以自动切换多个IP,避免IP被封。很多时候自动转换IP以及云采集才是自动化采集的关键。

集搜客(http://www.gooseeker.com/)

    完全可视化操作,无需编程。缺点是没有云采集。

日志采集

    日志采集是通过分析用户访问情况,提升系统的性能,从而提高系统的承载量,及时发现系统瓶颈,方便技术人员基于用户的访问情况进行优化。日志记录了用户访问网站的全过程:什么人通过什么渠道访问,执行了什么操作,系统是否发生错误等。,日志采集有助于我们了解用户的操作数据,适用于运维监控、安全审计、业务数据分析等场景。一般Web服务器会自带日志功能,也可以使用Flume从不同的服务器集群中采集、汇总和传输大容量的日志数据。当然我们也可以使用第三方的统计工具或自定义埋点得到自己想要的统计内容。
日志采集可以分两种形式。
1.通过 Web 服务器采集,例如httpd、Nginx、Tomcat都自带日志记录功能。同时很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如 Hadoop 的 Chukwa、Cloudera的Flume、Facebook的Scribe等,这些工具均采用分布式架构,能够满足每秒数百MB的日志数据采集和传输需求。
2.自定义采集用户行为,例如用 JavaScript 代码监听用户的行为、AJAX 异步请求后台记录日志等。

埋点是什么

    埋点是日志采集的关键步骤,埋点就是在有需要的位置采集相应的信息,进行上报。比如某页面的访问情况,包括用户信息、设备信息;或者用户在页面上的操作行为,包括时间长短等。这就是埋点,每一个埋点就像一台摄像头,采集用户行为数据,将数据进行多维度的交叉分析,可真实还原出用户使用场景,和用户使用需求。那我们要如何进行埋点呢?埋点就是在你需要统计数据的地方植入统计代码,当然植入代码可以自己写,也可以使用第三方统计工具。对于埋点这类监测性的工具,市场上已经比较成熟,比如友盟、Google Analysis、Talkingdata等。他们都是采用前端埋点的方式,然后在第三方工具里就可以看到用户的行为数据。但如果我们想要看到更深层的用户操作行为,就需要进行自定义埋点。
    数据采集是数据分析的关键,很多时候我们会想到Python网络爬虫,实际上数据采集的方法、渠道很广,有些可以直接使用开放的数据源,比如想获取比特币历史的价格及交易数据,可以直接从Kaggle上下载,不需要自己爬取。另一方面根据我们的需求,需要采集的数据也不同,比如交通行业,数据采集会和摄像头或者测速仪有关。对于运维人员,日志采集和分析则是关键。所以我们需要针对特定的业务场景,选择适合的采集工具。
    欢迎关注个人公众号:小菜鸡的技术之路。二维码如下:数据采集