gpt4 book ai didi

python - 从 html 文件导入表的行作为 python 中的列表

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

我是一个 python 新手,我遇到了一些我无法解决的问题(即使经过大约一百万次谷歌搜索)。

我有 >100 个 html 文件,每个文件中都有几个表格。最后,我希望将文件中第一个 HTML 表的每一行作为 python 中的列表,但没有 HTML 标记。第一步,我试图弄清楚如何摆脱 HTML 标签,然后我需要弄清楚如何将其作为列表导入。

我的 HTML 文件如下所示:

 <tr><td>1</td><td>FORWARD</td><td>72</td><td>20</td><td>60.29</td><td>55.00</td><td>5.00</td><td>3.00</td></tr>
<tr><td>&nbsp;</td><td>REVERSE</td><td>258</td><td>20</td><td>60.11</td><td>45.00</td><td>4.00</td><td>3.00</td></tr>
<tr><td>2</td><td>FORWARD</td><td>77</td><td>20</td><td>60.08</td><td>50.00</td><td>5.00</td><td>2.00</td></tr>
<tr><td>&nbsp;</td><td>REVERSE</td><td>258</td><td>20</td><td>60.11</td><td>45.00</td><td>4.00</td><td>3.00</td></tr>

我想要的是将行中的值放入列表中,类似于您手动执行此操作时得到的值:

 row1 = [FORWARD, 72, 20, 60.29, 55.0, 5.00, 3.00]. 

我读到 BeautifulSoup 可能会有所帮助,所以我尝试了:

 from bs4 import BeautifulSoup

def removeTags(html, *tags):
soup = BeautifulSoup(html)
for tag in tags:
for tag in soup.findAll(tag):
tag.replaceWith("")
return soup


testhtml = open('myfile.html', 'r')

print removeTags(testhtml, 'tr', 'td')

但这似乎删除了表格中的所有信息,而不仅仅是 HTML 标记。我也尝试过其他几件事,但我似乎被卡住了。如果有任何建议,我将不胜感激。

最佳答案

这有点草率,但它确实有效。

with open('htmlfile.html','r') as file:
rows = []
for line in file:
start = max(line.find('FORWARD'),line.find('REVERSE'))
rows.append(line[start:].replace('<','').replace('>','').replace('/','').replace('td',' ').replace('tr',' ').strip().split(' '))
print(rows)

关于python - 从 html 文件导入表的行作为 python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969667/

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