爬虫练手-国家统计局数据获取和分析

进入统计局数据查询页面
在这里插入图片描述
一般数据查询,然后可以直接下载为电子表格,非常方便。不过若需要左侧栏比较多数据,那么可以查看连接,通过接口请求获取。
在这里插入图片描述
观察接口,然后用Python模拟数据请求,代码如下:

# 解析URL,提取参数及其值
url = "https://data.stats.gov.cn/easyquery.htm"

params = {
    'm': 'QueryData',
    'dbcode': 'fsnd',
    'rowcode': 'zb',
    'colcode': 'reg',
    'wds': '[{"wdcode":"sj","valuecode":"2021"}]',
    'dfwds': '[{"wdcode":"zb","valuecode":"A0502"}]',
    'k1': str(int(time.time() * 1000)),
    'h': '1'
}

# 发送GET请求
response = requests.get(url, params=params, verify=False)

# 输出响应内容
print(response.text)

data = response.json()

在这里插入图片描述
这些数据看起来和页面的有些区别,因为这里很多中文都用标识来代替了,若要还原表格,可以查看返回数据中的data["returndata"]["wdnodes"], 然后把code和对应cname 做一个字典匹配。

def handle_data_to_dict(wdnode):
    """
    处理数据字典
    :param wdnode:
    :return:
    """
    zb_dict = {}
    reg_dict = {}
    for item in wdnode:
        if item["wdcode"] == "zb":
            for node in item["nodes"]:
                # print(node["cname"], node["code"], node["unit"])
                zb_dict[node["code"]] = f'{node["cname"]}({node["unit"]})'
        if item["wdcode"] == "reg":
            for node in item["nodes"]:
                # print(node["cname"], node["code"])
                reg_dict[node["code"]] = node["cname"]
    return zb_dict, reg_dict

想获取完整代码可以关注我的公众号,发送国家统计局,获取连接。
请添加图片描述

Python 国家统计局数据爬虫预处理是一个常见的数据科学项目,它通常涉及使用 Python 的网络请求库(如 `requests` 或 `beautifulsoup4`)从国家统计局或其他数据源抓取数据,然后利用 `pandas` 进行清洗、整理分析。以下是一个简要步骤的概述: 1. **目标选择**:确定你想要爬取的具体数据集或报告,比如人口统计数据、国民经济运行情况等。 2. **库准备**: - 安装必要的库:`requests`, `bs4`(BeautifulSoup)用于HTML解析,`pandas` `re`(正则表达式)用于数据处理。 - 可能还需要 `lxml` 或其他库,具体取决于数据结构。 3. **数据获取**: - 使用 `requests.get()` 发送HTTP请求,获取网页内容。 - 利用 BeautifulSoup 解析 HTML,找到包含数据的特定元素或标签。 4. **数据提取**: - 根据数据在页面上的展现形式,解析数据,可能需要根据CSS选择器或XPath路径定位数据。 5. **数据清洗**: - 删除无关信息(如广告、非结构化文本),处理缺失值、异常值。 - 数据类型转换,确保数据适合后续分析。 6. **数据整合**: - 将多个数据源的数据合并,如果需要的话。 7. **数据存储**: - 可能将数据保存为CSV、Excel、数据库(如SQLAlchemy ORM)或专门的数据分析库(如NumPy、Pandas DataFrame)。 8. **预处理**: -数据进行归一化、标准化、编码分类变量等,以便于分析- 根据需求可能还会进行时间序列分析或特征工程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值