当前位置:AIGC资讯 > 数据采集 > 正文

如何自动化采集数据?

举个例子,你做量化投资,基于大数据预测未来股票的波动,根据这个预测结果进行买卖。你当前能够拿到以往股票的所有历史数据,是否可以根据这些数据做出一个预测率高的数据分析系统呢?

实际上,如果你只有股票历史数据,你仍然无法理解股票为什么会产生大幅的波动。比如,当时可能是爆发了SARS疫情,或者某地区发生了战争等。这些重大的社会事件对股票的影响也是巨大的。

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

那么,从数据采集角度来说,都有哪些数据源呢?我将数据源分成了以下的四类。

这四类数据源包括了:开放数据源、爬虫抓取、传感器和日志采集。它们各有特点。

开放数据源一般是针对行业的数据库。比如美国人口调查局开放了美国的人口信息、地区分布和教育情况数据。除了政府外,企业和高校也会开放相应的大数据,这方面北美相对来说做得好一些。国内,贵州做了不少大胆尝试,搭建了云平台,逐年开放了旅游、交通、商务等领域的数据量。

要知道很多研究都是基于开放数据源进行的,否则每年不会有那么多论文发表,大家需要相同的数据集才能对比出算法的好坏。

爬虫抓取,一般是针对特定的网站或App。如果我们想要抓取指定的网站数据,比如购物网站上的购物评价等,就需要我们做特定的爬虫抓取。

第三类数据源是传感器,它基本上采集的是物理信息。比如图像、视频、或者某个物体的速度、热度、压强等。

最后是日志采集,这个是统计用户的操作。我们可以在前端进行埋点,在后端进行脚本收集、统计,来分析网站的访问情况,以及使用瓶颈等。

知道了有四类数据源,那如何采集到这些数据呢?

如何使用开放数据源

我们先来看下开放数据源,教你个方法,开放数据源可以从两个维度来考虑,一个是单位的维度,比如政府、企业、高校;一个就是行业维度,比如交通、金融、能源等领域。这方面,国外的开放数据源比国内做得好一些,当然近些年国内的政府和高校做开放数据源的也越来越多。一方面服务社会,另一方面自己的影响力也会越来越大。

比如,下面这张表格列举的就是单位维度的数据源。

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

如何使用爬虫做抓取

爬虫抓取应该属于最常见的需求,比如你想要餐厅的评价数据。当然这里要注重版权问题,而且很多网站也是有反爬机制的。

最直接的方法就是使用Python编写爬虫代码,当然前提是你需要会Python的基本语法。除此之外,PHP也可以做爬虫,只是功能不如Python完善,尤其是涉及到多线程的操作。

在Python爬虫中,基本上会经历三个过程。

使用 Requests 爬取内容。我们可以使用 Requests库来抓取网页信息。Requests 库可以说是 Python 爬虫的利器,也就是Python的HTTP 库,通过这个库爬取网页中的数据,非常方便,可以帮我们节约大量的时间。

使用 XPath 解析内容。XPath 是XML Path的缩写,也就是XML 路径语言。它是一种用来确定 XML 文档中某部分位置的语言,在开发中经常用来当作小型查询语言。XPath可以通过元素和属性进行位置索引。

使用 Pandas 保存数据。Pandas 是让数据分析工作变得更加简单的高级数据结构,我们可以用 Pandas 保存爬取的数据。最后通过Pandas再写入到XLS或者MySQL等数据库中。

Requests、XPath、Pandas是Python的三个利器。当然做Python爬虫还有很多利器,比如Selenium,PhantomJS,或者用Puppteteer这种无头模式。

更新时间 2023-11-08