首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【高效爬虫神器】仅14行python代码!爬某ZF网站统计数据

【高效爬虫神器】仅14行python代码!爬某ZF网站统计数据

作者头像
马哥python说
发布2025-07-14 20:18:59
发布2025-07-14 20:18:59
12600
代码可运行
举报
文章被收录于专栏:Python爬虫Python爬虫
运行总次数:0
代码可运行

大家好,我是马哥。废话不多说,直接开始!

一、分析爬取目标

目标网站:济南市统计局官网的统计数据:http://jntj.jinan.gov.cn/col/col18253/index.html

出于职业操守(hai pa)的考虑,先看一下目标网站的robots.txt:

图片
图片

页面显示,只有部分col目录下数据是Disallow的,其他目录可以爬取,OK,前方安全,兄弟们给我上!

随便打开一个链接,比如:

打开"2021年全年数据"链接之后,页面上是一堆表格,我数了数,一共21个这种数据表格。

图片
图片

对着其中一个表格,右键,检查,查看元素属性:

图片
图片

果然是<table>标签的表格,那就好办了,爬虫神器登场!(亮个相吧小宝贝~)

二、开发爬虫代码

2.1 整体代码

先整体看一下代码,一共14行!

图片
图片

2.2 分解代码

首先,导入需要用到的库:

代码语言:javascript
代码运行次数:0
运行
复制
import pandas as pd  # 存入数据
import requests  # 发送请求

定义爬取目标网址:

代码语言:javascript
代码运行次数:0
运行
复制
url = 'http://jntj.jinan.gov.cn/art/2022/2/7/art_18279_4745121.html'  # 目标网址

定义一个请求头,并发送请求:

代码语言:javascript
代码运行次数:0
运行
复制
header = {  # 请求头
  'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Mobile Safari/537.36', }
r = requests.get(url, headers=header)  # 发送请求

下面神器登场,用read_html一行代码,直接读取请求返回的页面内容即可!

代码语言:javascript
代码运行次数:0
运行
复制
df = pd.read_html(r.content)  # 爬虫神器

就爬取到了这21个表格数据,后面就存入excel完事了,是不是很棒!

可以试想,如果按照常规的爬虫开发流程,分析页面的table、每一行的tr、每一列的td,按照这个步骤去分析页面写爬虫代码,得写多少逻辑处理呢 - -!

所以说,神器真的是,好用!!

图片
图片

存入excel时,由于我想把每个表格放到1个sheet页里,所以,这样实现逻辑:

代码语言:javascript
代码运行次数:0
运行
复制
with pd.ExcelWriter('data.xlsx') as writer:
  for i in range(2, table_count - 1):  # 第0、1、-1个表格不是需要的,所有从第2个开始
    df[i].to_excel(writer, sheet_name=str(i), index=False, header=False)
    print('已保存完成:第{}个表格'.format(str(i)))

2.3 疑点

细心的你,可能会有疑问:

为什么不直接用read_html(url)爬取,而要先requests.get(url),再用read_html呢?

没错,反爬较弱的网站,可以这样。

但,济南市统计局网站,我试过直接用read_html(url),会返回403错误码,403 Forbidden!你懂了吧。。

所以先requests.get(url),这样就能带上request header了,伪装好自己~

三、演示结果数据

爬取完成后,看一下结果:

一共21个sheet页,每个sheet页对应一个表格数据。

最后,针对其他链接的统计局表格数据,同理,这里就不做演示了,照葫芦画瓢,改目标URL就是了~

四、GET完整代码

本次案例爬虫代码相对简单,总共只有14行代码,大家对照着复制我上面的代码即可。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老男孩的平凡之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、分析爬取目标
  • 二、开发爬虫代码
    • 2.1 整体代码
    • 2.2 分解代码
    • 2.3 疑点
  • 三、演示结果数据
  • 四、GET完整代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档