gpt4 book ai didi

将 HTML 表格转换为可读纯文本的 Python 解决方案

转载 作者:行者123 更新时间:2023-11-28 05:00:14 24 4
gpt4 key购买 nike

我正在寻找一种方法将 HTML 表格干净地转换为可读的纯文本。

即给定一个输入:

<table>
<tr>
<td>Height:</td>
<td>200</td>
</tr>
<tr>
<td>Width:</td>
<td>440</td>
</tr>
</table>

我期望输出:

Height: 200
Width: 440

我宁愿不使用外部工具,例如w3m -dump file.html,因为它们 (1) 依赖于平台,(2) 我想对该过程进行一些控制,并且 (3) 我认为它可以单独使用 Python 或没有额外的模块。

我不需要任何自动换行或可调整的单元格分隔符宽度。使用制表符作为单元格分隔符就足够了。

更新

这是针对旧用例的旧问题。鉴于pandas provides the read_html method ,我现在的答案肯定是 pandas-based .

最佳答案

如何使用这个:

Parse HTML table to Python list?

但是,使用 collections.OrderedDict() 而不是简单的字典来保持顺序。有了字典后,就可以非常容易地从中获取文本并对其进行格式化:

使用@Colt 45的解决方案:

import xml.etree.ElementTree
import collections

s = """\
<table>
<tr>
<th>Height</th>
<th>Width</th>
<th>Depth</th>
</tr>
<tr>
<td>10</td>
<td>12</td>
<td>5</td>
</tr>
<tr>
<td>0</td>
<td>3</td>
<td>678</td>
</tr>
<tr>
<td>5</td>
<td>3</td>
<td>4</td>
</tr>
</table>
"""

table = xml.etree.ElementTree.XML(s)
rows = iter(table)
headers = [col.text for col in next(rows)]
for row in rows:
values = [col.text for col in row]
for key, value in collections.OrderedDict(zip(headers, values)).iteritems():
print key, value

输出:

Height 10
Width 12
Depth 5
Height 0
Width 3
Depth 678
Height 5
Width 3
Depth 4

关于将 HTML 表格转换为可读纯文本的 Python 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16748794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com