news 2026/9/29 2:16:32

使用 Python 将 HTML 表格写入数据库的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Python 将 HTML 表格写入数据库的方法

在数据采集和处理过程中,经常需要将 HTML 表格中的数据提取并存入数据库,以便进一步分析和处理。实现这一功能通常涉及解析 HTML 获取表格内容,并将提取的数据以结构化形式存入数据库。为了确保数据的完整性和安全性,需要考虑数据清洗、异常处理和数据库安全性。

解决方案

使用BeautifulSoup解析 HTML,提取表格数据后存入 PandasDataFrame,再利用sqlite3或其他数据库驱动(如SQLAlchemy)将数据写入数据库。首先,从 HTML 中提取表格数据,并转换为DataFrame,以便进行进一步的数据处理。解析 HTML 代码时,BeautifulSoup提供了一种便捷的方式来获取<table>元素的内容,并将<th>作为列名,<td>作为数据行读取。数据提取完成后,利用pandas进行数据转换,并使用to_sql方法将其存入数据库。

frombs4importBeautifulSoupimportpandasaspdimportsqlite3# HTML 内容示例html_content=""" <table> <tr> <th>Name</th> <th>Age</th> </tr> <tr> <td>Alice</td> <td>24</td> </tr> <tr> <td>Bob</td> <td>25</td> </tr> </table> """# 解析 HTML 表格soup=BeautifulSoup(html_content,'html.parser')table=soup.find('table')# 提取表头columns=[th.get_text().strip()forthintable.find('tr').find_all('th')]# 提取表格数据data=[]forrowintable.find_all('tr')[1:]:cells=row.find_all('td')iflen(cells)==len(columns):data.append([cell.text.strip()forcellincells])# 创建 Pandas DataFramedf=pd.DataFrame(data,columns=columns)# 连接 SQLite 数据库并存储表格数据conn=sqlite3.connect('example.db')c=conn.cursor()# 创建数据库表c.execute('''CREATE TABLE IF NOT EXISTS people (Name text, Age integer)''')conn.commit()# 写入数据库df.to_sql('people',conn,if_exists='append',index=False)# 关闭连接conn.close()

上述代码成功执行后,数据库example.db中会新增people表,并存入解析后的 HTML 表格数据。运行SELECT * FROM people;查询数据,可以看到存储的内容如下:

sqlite>SELECT*FROMpeople;Alice|24Bob|25

数据写入数据库之前需要进行数据清洗,以确保数据的准确性和一致性。例如,可以去除额外的空白字符、处理缺失数据或转换数据类型。同时,在数据库操作过程中加入异常处理机制,避免因数据库连接失败或数据格式不匹配导致程序崩溃。此外,在处理外部数据时,需防范 SQL 注入攻击,避免潜在的安全风险。

使用 Python 解析 HTML 表格并存入数据库的过程相对简单,主要依赖BeautifulSoup进行解析,pandas进行数据转换,以及sqlite3进行数据库操作。此方法适用于数据采集和自动化存储任务,可扩展至其他数据库(如 MySQL、PostgreSQL),并结合 SQLAlchemy 进一步优化数据库操作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 2:16:24

OpenCV与PIL图像基础:从读写到PyTorch边缘检测的完整实战

上次我们把 PyTorch 的环境跑通了&#xff0c;这次继续往前走&#xff0c;把图像处理的两大基础库 OpenCV 和 PIL 装好&#xff0c;再拿一个真正能跑的小实战练手。很多零基础的同学在这里会卡住&#xff1a;不是 PyTorch 不会用&#xff0c;而是读进来的图片到底是个 numpy 数…

作者头像 李华
网站建设 2026/9/29 2:16:22

解决 MoviePy 输出文件无法保存问题

在使用 moviepy 进行视频处理时&#xff0c;调用 write_videofile 方法保存视频文件时出现如下错误&#xff1a; Traceback (most recent call last):File "Video\VideoShuffleConcatenate\script.py", line 361, in runFile "<decorator-gen-55>", …

作者头像 李华
网站建设 2026/9/29 2:15:27

PositionSetpointTriplet 消息深度解析:PX4 航点任务的核心数据通道

嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址&#xff1a; https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 导读 PositionSetpointTriplet&#xff08;全局位置设定点三元组&#xff09;是 PX4 …

作者头像 李华
网站建设 2026/9/29 2:14:27

SpringBoot+MySQL商业辅助决策系统实战:从数据建模到部署

先聊一个现象&#xff1a;很多做JavaWeb毕业设计或者企业内部小工具开发的人&#xff0c;一看"商业辅助决策系统"这几个字&#xff0c;第一反应就是"这东西是不是得上大数据平台、数据仓库、机器学习那一套&#xff1f;"。实际接触过这类项目之后我的感受完…

作者头像 李华