【笔记】数据采集:如何自动化采集数据?

如果我们想要预测一只股票的走势,那么我光把这只股票的历史数据拿到是不够的,你只知道了它历史上什么时候涨,什么时候跌,缺不知道它为什么涨为什么跌。有可能是因为爆发了战争或者疫情。

所以我们要知道一个数据的走势,是由多个维度影响的。我们需要通过多源的数据采集,收集到尽可能多的数据维度,同时保证数据的质量,才能得到高质量的数据挖掘结果。

数据源

1. 开放数据源:政府、企业、高校

开放数据源一般是针对行业的数据库。比如美国人口调查局开放了美国的人口信息。
国内,贵州在做大胆的尝试,逐年开放旅游、商务、交通等方面的数据。

2. 爬虫抓取:网页、APP

一般针对特定的网站或APP,比如抓取评论。

  1. 日志采集:前端采集、后端脚本
    统计用户的操作等。

  2. 传感器:图像、热敏、测速
    采集物理信息。

如何使用开放数据源

开放数据源可以从两个维度来考虑:

  1. 单位的维度:政府、企业、高校
  2. 行业的维度:交通、金融、能源
单位 数据源 网址
美国人口调查局 提供人口信息,地区分布和教育情况等美国公民相关的数据 http://www.census.gov/data.html
欧盟 欧盟开放数据平台,提供欧盟各机构的大量数据。 http://open-data.europa.eu/en/data/
Facebook Facebook官方提供的API,用于查询该网站用户的海量信息 https://developers.facebook.com/docs/graph-api
Amazon Amazon网络服务开放数据集 http://aws.amazon.com/datasets
Google Goole金融,收录了40年以来的股票数据,实时更新 https://www.google.com/finance
北京大学 北京大学开放研究数据平台 https://opendata.pku.edu.cn
ImageNet 目前世界上图像识别最大的数据库,包括近1500万张图像 http://www.image-net.org

所以如果你想找某个领域的数据源,比如金融领域,你基本上可以看下政府、高校、企业是否有开放的数据源。当然你也可以直接搜索金融开放数据源。

如何使用爬虫抓取

  1. 使用Requests爬取内容。
  2. 使用XPath解析内容。
  3. 使用Pandas保存数据。

此外还有Selenium,PhantomJS,或者用 Puppteteer 这种无头模式。

现成的爬虫产品

火车采集器

http://www.locoy.com/
它不仅可以做抓取工具,也可以做数据清洗、数据分析、数据挖掘和可视化等工作。

八爪鱼

http://www.bazhuayu.com/
免费版:本地采集
收费版:云采集,自动切换IP,多节点采集。

搜集客

http://www.gooseeker.com/
完全可视化,无需编程。没有云采集功能。

如何使用日志采集工具

日志采集可以分两种形式:

  1. 通过 Web 服务器采集,例如 httpd、Nginx、Tomcat 都自带日志记录功能。同时很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如 Hadoop 的 Chukwa、Cloudera 的 Flume、Facebook 的 Scribe 等,这些工具均采用分布式架构,能够满足每秒数百 MB 的日志数据采集和传输需求。

  2. 自定义采集用户行为,例如用 JavaScript 代码监听用户的行为、AJAX 异步请求后台记录日志等。

埋点是什么

埋点就是在有需要的位置采集相应的信息,进行上报。

推荐的第三方工具:

  1. 友盟
  2. google analysis
  3. talkingdata
加载评论框需要科学上网