如何在 </br> python中读取html文件时保留标签



我正在尝试读取和编辑一个html文件。我正在使用 BeautifulSoup 就地编辑 html,但我发现即使在制作"汤"之前,我的 html 文件已经被 read(( 函数解释。 例如:

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered)">
</head>
<a href="Aug_24_2018.txt"><b>Aug 24 2018: Report</a></br>
<a href="Aug_23_2018.txt"><b>Aug 23 2018: Report</a></br>
<a href="Aug_22_2018.txt"><b>Aug 22 2018: Report</a></br>
<a href="Aug_21_2018.txt"><b>Aug 21 2018: Report</a></br>
<a href="Aug_20_2018.txt"><b>Aug 20 2018: Report</a></br>
</html>

变成这样:

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered)">
</head>
<a href="Aug_24_2018.txt"><b>Aug 24 2018: Report</a>
<a href="Aug_23_2018.txt"><b>Aug 23 2018: Report</a>
<a href="Aug_22_2018.txt"><b>Aug 22 2018: Report</a>
<a href="Aug_21_2018.txt"><b>Aug 21 2018: Report</a>
<a href="Aug_20_2018.txt"><b>Aug 20 2018: Report</a>
</html>

这是非常不同的,因为它破坏了格式并将所有域混在一起。

这是我用来读取的代码:

with open("/data/report.html") as inf:
txt = inf.read() #this is where the problem occurs
soup = bs4.BeautifulSoup(txt, 'lxml') 

我不能随意更改原始文件的格式,所以我想尽可能地符合它。有什么可能的解决方案来保留</br>标签吗?

看起来有人在关闭 b 标签时失败并错误地添加了"/br"标签。由于这是无效的 HTML,我警告不要保留它。相反,请考虑将其替换为希望首先是某人的意图。为此,我会使用文本编辑器,如记事本或 vim。

文件打开不会在读取时更改 HTML。

最新更新