Python使用pandas read_html爬取网页表格数据的示例代码
作者:张老师技术栈
还在用复杂的正则或XPath解析网页表格吗,试试pandas的read_html,一行代码就能抓取股票行情、天气预报等数据,自动识别所有表格并保存到Excel,让你的数据爬虫效率飞升,轻松搞定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="股票") # 匹配包含"股票"的表格
到此这篇关于Python使用pandas read_html爬取网页表格数据的示例代码的文章就介绍到这了,更多相关Python pandas read_html爬取表格数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
