0

0

如何读取HTML表格数据_内容提取方法解析【教程】

星夢妙者

星夢妙者

发布时间:2025-12-21 16:18:08

|

568人浏览过

|

来源于php中文网

原创

提取HTML表格数据有五种方法:一、JavaScript DOM API遍历节点;二、Python BeautifulSoup解析源码;三、Pandas read_html自动转DataFrame;四、正则表达式粗粒度匹配;五、XPath精准定位节点。

如何读取html表格数据_内容提取方法解析【教程】

如果您需要从网页中提取HTML表格内的数据,但缺乏有效的解析手段,则可能是由于表格结构复杂或未采用标准DOM解析方式。以下是读取HTML表格数据的多种内容提取方法:

一、使用JavaScript原生DOM API遍历table元素

该方法直接操作浏览器环境中的DOM树,通过获取table、tbody、tr、td等节点,逐层提取文本内容,适用于已加载完成的静态页面。

1、在浏览器开发者工具控制台中输入document.querySelector('table'),确认目标表格存在且可被选中。

2、执行const table = document.querySelector('table'); const rows = table.querySelectorAll('tr');

立即学习前端免费学习笔记(深入)”;

3、遍历rows,对每一行调用row.querySelectorAll('td, th')获取单元格集合。

4、对每个单元格调用cell.textContent.trim()提取纯文本内容,并按行列组织为二维数组。

5、将结果使用console.table(data)输出,便于查看结构化数据。

二、利用Python的BeautifulSoup库解析HTML源码

该方法适合服务端批量处理HTML文件或远程网页源码,通过标签层级匹配定位表格区域,稳定性高且支持不规范HTML容错。

1、安装依赖:pip install beautifulsoup4 requests

2、使用requests.get(url)获取网页HTML响应内容,或用open()读取本地HTML文件。

3、创建soup = BeautifulSoup(html_content, 'html.parser')对象。

4、执行tables = soup.find_all('table'),根据索引或属性(如id、class)筛选目标表格。

5、对选定table对象调用find_all('tr')获取所有行,再嵌套遍历每行的find_all(['td', 'th'])提取.get_text(strip=True)值。

三、借助Pandas的read_html函数自动识别表格

该方法无需手动编写解析逻辑,Pandas内置HTML解析器能自动检测页面中所有table标签并转换为DataFrame,适合快速提取结构清晰的表格。

1、安装依赖:pip install pandas lxml html5lib

2、调用pandas.read_html(url)或pandas.read_html(html_string),返回列表形式的DataFrame集合。

知了追踪
知了追踪

AI智能信息助手,智能追踪你的兴趣资讯

下载

3、检查列表长度,使用print(len(tables))确认识别到的表格数量。

4、选取目标索引如df = tables[0],验证列名与数据是否对齐。

5、对含合并单元格的表格,需额外设置flavor参数为'lxml'并配合header、skiprows等参数调整解析行为。

四、使用正则表达式粗粒度匹配表格内容

该方法绕过HTML解析器,直接对原始字符串进行模式匹配,适用于无法加载完整DOM或需极简依赖的嵌入式场景,但对嵌套结构和转义字符敏感。

1、读取HTML全文为字符串变量html_str。

2、编写正则pattern = r'

]*>(.*?)
',配合re.DOTALL标志提取最外层table块。

3、对每个table块重复应用r'

]*>(.*?)'提取行,再对每行使用r']*>(.*?)[dh]>'提取单元格。

4、对匹配结果调用re.sub(r']+>', '', cell_text)清除残留标签。

5、使用html.unescape()处理HTML实体,例如将&替换为&,确保中文与符号正确还原

五、通过XPath路径精准定位表格节点

该方法依托XML路径语言,在Selenium或lxml环境中实现高精度节点选取,尤其适用于具有唯一属性标识的复杂表格结构。

1、若使用lxml,导入from lxml import html;若使用Selenium,确保driver已加载目标页面。

2、解析HTML:tree = html.fromstring(html_content) 或 tree = html.fromstring(driver.page_source)。

3、编写XPath表达式如'//table[@id="data-table"]//tr'定位所有数据行。

4、对每行执行td_list = row.xpath('.//td/text() | .//th/text()'),合并文本节点结果。

5、过滤空值并调用.strip()清理空白,保留非空且长度大于0的字段内容

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

755

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

759

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

708

2023.08.11

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 3.7万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.2万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号