pd.read_html 获取网页上的表格数据
一、pd.read_html 参数
函数参数
pandas.read_html(io, match='.+', flavor=None, header=None, index_col=None, skiprows=None,
attrs=None, parse_dates=False, thousands=',', encoding=None, decimal='.', converters=None,
na_values=None, keep_default_na=True, displayed_only=True)
主要参数
io:ulr
其他参数请看官网:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_html.html?highlight=read_html
一、pd.read_html 用法
主要用于爬取网页的表格,注意图片是不能爬取的
案例1:抓取世界大学排名榜(第1页的数据)
# 导入库 import pandas as pd import csv # 传入要抓取的url url1 = "http://www.compassedu.hk/qs" #0表示选中网页中的第一个Table,或者这么使用pd.read_html(url, header=0, index_col=0,encoding = "gbk") df1 = pd.read_html(url1)[0] # 打印预览 df1 # 导出到CSV df1.to_csv(r"C:\Users\QDM\Desktop\世界大学综合排名.csv",index=0,encoding = "gbk") # 或导出到Excel df1.to_excel(r"C:\Users\QDM\Desktop\世界大学综合排名.xlsx",index=0)
示例2:抓取新浪财经基金重仓股数据(共6页数据)
import pandas as pd import csv df2 = pd.DataFrame() for i in range(6): url2 = "http://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jjzc/index.phtml?p={page}".format(page=i+1) df2 = pd.concat([df2,pd.read_html(url2)[0]]) print("第{page}页抓取完成".format(page = i + 1)) # 保存到CSV df2.to_csv(r"C:\Users\QDM\Desktop\新浪财经数据.csv",encoding = "gbk",index=0) # 保存到Excel df2.to_excel(r"C:\Users\QDM\Desktop\新浪财经数据.xlsx",index=0)
示例3:抓取证监会披露的IPO数据(共217页数据)
# 导入所需要用到的库 import pandas as pd from pandas import DataFrame import csv import time #程序计时 start = time.time() #添加列名 #"公司名称","披露类型","上市板块","保荐机构","披露时间","公告" df3 = DataFrame(data=None,columns=["公司名称","披露类型","上市板块","保荐机构","披露时间","公告"]) for i in range(1,51): url3 = "http://eid.csrc.gov.cn/ipo/1017/index.html" #必须加utf-8,否则乱码 df3_1 = pd.read_html(url3,encoding = "utf-8")[0] #过滤掉最后一行和最后一列(NaN列) #df3_2 = df3_1.iloc[1:len(df3_1)-1,0:-1] #新的df添加列名 df3_1.columns=["公司名称","披露类型","上市板块","保荐机构","披露时间","公告"] #数据合并 df3 = pd.concat([df3,df3_1]) print("第{page}页抓取完成".format(page = i))
温馨提示:并不是所有表格都可以用read_html()来抓取,有的网站表面上看起来是表格,但在网页源代码中不是table格式,而是list列表格式。
这种表格则不适用read_html爬取,得用其他的方法,比如selenium
文章参考:https://my.oschina.net/u/3750423/blog/4473904,https://www.zhihu.com/question/441361902/answer/1800339000
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人