Python 爬取网页表格数据——pandas read_html 一行代码搞定
·
很多网站的数据以 HTML 表格形式展示——股票行情、天气预报、统计年鉴、学校课表。用普通爬虫写正则或 XPath 去解析 HTML 表格非常麻烦,而 pandas 的 read_html 一行代码就能把网页上的所有表格抓下来。
一、read_html 基础用法
1. 最简单的用法
import pandas as pd
tables = pd.read_html("https://example.com/stats")
print(f"网页中共有 {len(tables)} 个表格")
read_html 会自动解析网页中的所有 <table> 标签,返回一个 DataFrame 列表。
2. 选择指定表格
# 按索引选择
df = tables[0] # 第一个表格
# 按 CSS class 过滤
tables = pd.read_html(url, attrs={"class": "data-table"})
# 按 id 过滤
tables = pd.read_html(url, attrs={"id": "table1"})
3. 保存到 Excel
df = tables[0]
df.to_excel("股票数据.xlsx", index=False)
二、实战:抓取股票数据
import pandas as pd
url = "https://example.com/stock"
tables = pd.read_html(url)
# 找到股票行情表
stock_df = tables[0]
# 查看前几行
print(stock_df.head())
# 保存
stock_df.to_excel("股票行情.xlsx", index=False)
三、注意事项
read_html 依赖 lxml 或 html5lib 解析器:
pip install lxml html5lib
编码问题指定:
pd.read_html(url, encoding="utf-8")
表格太多时指定只取前 N 个:
pd.read_html(url, match="股票") # 匹配包含"股票"的表格
💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!
更多推荐



所有评论(0)