从本地文件而不是 Web 打开文件时如何解码 HTML 文件?

How to decode a HTML-file when open it from a local file instead of the web?

我尝试编写一个 HTML-解析器,但在测试期间我不想每次都查询该网站,所以我将网站保存为本地 HTML-文件。

为了阅读,我使用:

urltext = urllib.request.urlopen(urlfile).read().decode("utf-8")

直接从网站上我得到了一个正确的字符串来解析,但是当我从我的本地电脑打开它时,它似乎有一个错误的解码:

<span id="line845"></span>                          </span><span>&lt;<span class="start-tag">h2</span> <span class="attribute-name">class</span>="<a class="attribute-value">article-title</a>"&gt;</span><span>
<span id="line846"></span>                                          </span><span>&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline-intro</a>"&gt;</span><span>Intro:</span><span>&lt;/<span class="end-tag">span</span>&gt;</span><span> </span><span>&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline</a>"&gt;</span><span>Main text</span><span>&lt;/<span class="end-tag">span</span>&gt;</span><span></span><span>&lt;/<span class="end-tag">h2</span>&gt;</span><span>

最初应该是这样的:

<h2 class="article-title">
                                            <span class="headline-intro">Intro:</span> <span class="headline">Main Text</span></h2>

知道我做错了什么吗?

谢谢

Kev

您下载的 HTML 文件不正确,但您打开它的方法看起来是正确的。

听起来您在浏览器中打开了网页的源代码,将其复制粘贴到 Libre Office 中,并使用了 Libre Office 的 "Save as HTML" 功能。这行不通,因为 HTML 是一种纯文本标记格式,而 Libre Office 是一种富文本文字处理器——这意味着 Libre Office 会保存字体、大小、颜色、装饰、图像等信息。就在文件中。

Libre Office 中的 "Save as HTML" 功能旨在将普通文档转换为网页,而不是保存您在文档中键入的 HTML 标记。

要以正确的方式下载文档,请找到浏览器的 "save" 功能。在大多数浏览器中,您只需按 Ctrl / Cmd + S。完成后,在纯文本编辑器(例如记事本、Gedit 或 TextEdit)中打开该文件,确保其外观符合预期。