爬取国家统计局数据如果有数据为空怎么办

如题所述

1.爬虫基本流程
发起请求:通过http/https库向目标站点发起请求,即发送一个request,请求可以包含额外的headers等信息,等待服务器响应
获取相应内容:如果服务器能正常响应,会得到一个response,response的内容便是所要获取的页面内容,类型可能有HTML,json字符串,二进制数据(如图片视频)等类型
解析内容:得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析,可能是json,可以直接转为json对象,可能是二进制数据,可以做保存或者进一步的处理
(本次实验得到的解析内容是json)
保存数据:可以存为文本,也可以保存至数据库,或者特定格式的文件
2.打开网页并分析
国家统计局的网站很奇怪,明明是https却会告警不安全,首次打开界面如下(本人使用的是谷歌浏览器)

点击“高级”-“继续前往”,方可进入首页

选择“季度数据”-“分省季度数据”

选择“人民生活”-“城乡收支情况”

地区修改为“上海市”

按下F12,进入浏览器调试模式

刷新重新获取网页信息,找到easyquery.htm?m=Query Data&dbc...的文件。可以先选中"XHR"过滤条件,缩小查找范围

怎么确认这个文件就包含有我们要找的数据呢?点击“response”板块,向右拖动滑块可以看到表格数据可以一一对应(但数据并没有连续出现)

注意:这里的data和strdata看上去一样,但实际格式不一样,data是int或double格式,strdata是str格式,这个表格有一些空数据行,字符串格式方便做判断,字符串转数字使用eval()即可

3.完整代码及解析
注:缺少的库可以在命令行使用pip命令安装,如缺少requests库,可以在命令行输入命令

pip install requests

import urllib3

# 使用urllib3.disable_warnings()在关闭SSL认证(verify=False)情况下

# 将requests请求禁用安全请求警告

import requests # 使用Requests发送网络请求

import time # 用来获取时间戳(计算当前时间,用于网页验证)

import json # 处理json文件
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-08-02
在使用八爪鱼采集器爬取国家统计局数据时,如果出现数据为空的情况,可以考虑以下几个方面:1. 检查采集规则:确认采集规则是否设置正确,包括选择正确的数据元素、设置正确的属性和路径等。如果规则设置有误,可能导致数据为空。2. 检查网页结构:国家统计局的网页结构可能会发生变化,导致采集规则无法正确匹配数据。可以尝试更新采集规则,或者使用智能识别功能重新识别网页结构。3. 检查数据源:国家统计局的数据源可能会出现数据缺失或更新延迟的情况。可以通过其他渠道验证数据的准确性和完整性。4. 优化采集策略:如果数据为空的情况较为普遍,可以考虑优化采集策略。例如,可以增加采集频率,或者使用多个采集任务同时采集不同的数据源,以提高数据获取的成功率。八爪鱼采集器提供了强大的数据采集和处理能力,可以帮助您快速获取所需的数据。了解更多八爪鱼采集器的能力和案例,请前往官网了解更多详情。
相似回答