ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

使用 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 thName/th thAge/th /tr tr tdAlice/td td24/td /tr tr tdBob/td td25/td /tr /table # 解析 HTML 表格soupBeautifulSoup(html_content,html.parser)tablesoup.find(table)# 提取表头columns[th.get_text().strip()forthintable.find(tr).find_all(th)]# 提取表格数据data[]forrowintable.find_all(tr)[1:]:cellsrow.find_all(td)iflen(cells)len(columns):data.append([cell.text.strip()forcellincells])# 创建 Pandas DataFramedfpd.DataFrame(data,columnscolumns)# 连接 SQLite 数据库并存储表格数据connsqlite3.connect(example.db)cconn.cursor()# 创建数据库表c.execute(CREATE TABLE IF NOT EXISTS people (Name text, Age integer))conn.commit()# 写入数据库df.to_sql(people,conn,if_existsappend,indexFalse)# 关闭连接conn.close()上述代码成功执行后数据库example.db中会新增people表并存入解析后的 HTML 表格数据。运行SELECT * FROM people;查询数据可以看到存储的内容如下sqliteSELECT*FROMpeople;Alice|24Bob|25数据写入数据库之前需要进行数据清洗以确保数据的准确性和一致性。例如可以去除额外的空白字符、处理缺失数据或转换数据类型。同时在数据库操作过程中加入异常处理机制避免因数据库连接失败或数据格式不匹配导致程序崩溃。此外在处理外部数据时需防范 SQL 注入攻击避免潜在的安全风险。使用 Python 解析 HTML 表格并存入数据库的过程相对简单主要依赖BeautifulSoup进行解析pandas进行数据转换以及sqlite3进行数据库操作。此方法适用于数据采集和自动化存储任务可扩展至其他数据库如 MySQL、PostgreSQL并结合 SQLAlchemy 进一步优化数据库操作。
返回列表