概述 国家统计局的公开数据真实性强,宏观且与我们的生活息息相关。 因此,采集此数据作为数据分析实验的数据再好不过。 采集过程 采集各种公开数据的第一步就是分析网页。 上面的图是国家统…
### 概述
国家统计局的公开数据真实性强,宏观且与我们的生活息息相关。
因此,采集此数据作为数据分析实验的数据再好不过。
采集过程
采集各种公开数据的第一步就是分析网页。
上面的图是国家统计局年度数据的界面。 左边是数据分类的树形菜单,右边是每个菜单点击之后显示的数据,可以设置年份来过滤数据。
采集数据分类树
根据页面的情况,首先,我们需要采集树形菜单中的数据,然后再根据菜单的分类来依次采集右边的数据。 这样可以避免采集的遗漏。
爬虫采集数据一般有 2 种情况:
采集 html 页面,然后分析其��的���构,提取出数据
查看是否存在获取数据的 API,直接从 API 中提取数据
通过分析网页的加载过程,发现国际统计局的数据是有 API 的,这就节省了很多时间。
API 信息如下:
1 | host: "https://data.stats.gov.cn/easyquery.htm" |
通过 python 的 requests 库模拟 POST 请求就可以获取到树形菜单中的数据了。
1 | def init_tree(tree_data_path): |
直接调用上面的 init_tree 函数即可,树形菜单会以 json 格式序列化到 tree_data_path 中。
序列化的目的是为了后面采集数据时可以反复使用,不用每次都去采集这个树形菜单。(毕竟菜单是基本不变的)
根据分类采集数据
有了分类的菜单,���一步就是采集具体的数据。 同样,通过分析网页,数据也是有 API 的,不用采集 html 页面再提取数据。
1 | host: "https://data.stats.gov.cn/easyquery.htm" |
采集数据稍微复杂一些,不像采集树形菜单那样访问一次 API 即可,而是遍历树形菜单,根据菜单的信息访问 API。
1 | # -*- coding: utf-8 -*- |
代码说明:
tree_data_path = “./tree.data” : 这个是第一步序列化出的树形菜单数据
采集的数据按照树形菜单中的每个菜单的编号生成相应的 csv
树形菜单的每个叶子节点才有数据,非叶子节点不用采集
调用 data 函数来采集数据,默认是从 1978 年的数据开始采集的
采集结果
本次采集的结果有 1917 个不同种类的数据。
下载地址: https://databook.top/data/de9d8cc6-2bab-4ef1-b09f-8dcf83c32648/detail
本文标题: 国家统计局数据采集
本文作者: OSChina
发布时间: 2021年04月15日 09:46
最后更新: 2025年04月03日 11:07
原始链接: https://haoxiang.eu.org/9f8f23ac/
版权声明: 本文著作权归作者所有,均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!