【笔记】数据采集:如何自动化采集数据?
如果我们想要预测一只股票的走势,那么我光把这只股票的历史数据拿到是不够的,你只知道了它历史上什么时候涨,什么时候跌,缺不知道它为什么涨为什么跌。有可能是因为爆发了战争或者疫情。
所以我们要知道一个数据的走势,是由多个维度影响的。我们需要通过多源的数据采集,收集到尽可能多的数据维度,同时保证数据的质量,才能得到高质量的数据挖掘结果。
数据源
1. 开放数据源:政府、企业、高校
开放数据源一般是针对行业的数据库。比如美国人口调查局开放了美国的人口信息。
国内,贵州在做大胆的尝试,逐年开放旅游、商务、交通等方面的数据。
2. 爬虫抓取:网页、APP
一般针对特定的网站或APP,比如抓取评论。
日志采集:前端采集、后端脚本
统计用户的操作等。传感器:图像、热敏、测速
采集物理信息。
如何使用开放数据源
开放数据源可以从两个维度来考虑:
- 单位的维度:政府、企业、高校
- 行业的维度:交通、金融、能源
单位 | 数据源 | 网址 |
---|---|---|
美国人口调查局 | 提供人口信息,地区分布和教育情况等美国公民相关的数据 | http://www.census.gov/data.html |
欧盟 | 欧盟开放数据平台,提供欧盟各机构的大量数据。 | http://open-data.europa.eu/en/data/ |
Facebook官方提供的API,用于查询该网站用户的海量信息 | https://developers.facebook.com/docs/graph-api | |
Amazon | Amazon网络服务开放数据集 | http://aws.amazon.com/datasets |
Goole金融,收录了40年以来的股票数据,实时更新 | https://www.google.com/finance | |
北京大学 | 北京大学开放研究数据平台 | https://opendata.pku.edu.cn |
ImageNet | 目前世界上图像识别最大的数据库,包括近1500万张图像 | http://www.image-net.org |
所以如果你想找某个领域的数据源,比如金融领域,你基本上可以看下政府、高校、企业是否有开放的数据源。当然你也可以直接搜索金融开放数据源。
如何使用爬虫抓取
- 使用Requests爬取内容。
- 使用XPath解析内容。
- 使用Pandas保存数据。
此外还有Selenium,PhantomJS,或者用 Puppteteer 这种无头模式。
现成的爬虫产品
火车采集器
http://www.locoy.com/
它不仅可以做抓取工具,也可以做数据清洗、数据分析、数据挖掘和可视化等工作。
八爪鱼
http://www.bazhuayu.com/
免费版:本地采集
收费版:云采集,自动切换IP,多节点采集。
搜集客
http://www.gooseeker.com/
完全可视化,无需编程。没有云采集功能。
如何使用日志采集工具
日志采集可以分两种形式:
通过 Web 服务器采集,例如 httpd、Nginx、Tomcat 都自带日志记录功能。同时很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如 Hadoop 的 Chukwa、Cloudera 的 Flume、Facebook 的 Scribe 等,这些工具均采用分布式架构,能够满足每秒数百 MB 的日志数据采集和传输需求。
自定义采集用户行为,例如用 JavaScript 代码监听用户的行为、AJAX 异步请求后台记录日志等。
埋点是什么
埋点就是在有需要的位置采集相应的信息,进行上报。
推荐的第三方工具:
- 友盟
- google analysis
- talkingdata