从本地文件而不是 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><<span class="start-tag">h2</span> <span class="attribute-name">class</span>="<a class="attribute-value">article-title</a>"></span><span>
<span id="line846"></span> </span><span><<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline-intro</a>"></span><span>Intro:</span><span></<span class="end-tag">span</span>></span><span> </span><span><<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline</a>"></span><span>Main text</span><span></<span class="end-tag">span</span>></span><span></span><span></<span class="end-tag">h2</span>></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)中打开该文件,确保其外观符合预期。
我尝试编写一个 HTML-解析器,但在测试期间我不想每次都查询该网站,所以我将网站保存为本地 HTML-文件。
为了阅读,我使用:
urltext = urllib.request.urlopen(urlfile).read().decode("utf-8")
直接从网站上我得到了一个正确的字符串来解析,但是当我从我的本地电脑打开它时,它似乎有一个错误的解码:
<span id="line845"></span> </span><span><<span class="start-tag">h2</span> <span class="attribute-name">class</span>="<a class="attribute-value">article-title</a>"></span><span>
<span id="line846"></span> </span><span><<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline-intro</a>"></span><span>Intro:</span><span></<span class="end-tag">span</span>></span><span> </span><span><<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline</a>"></span><span>Main text</span><span></<span class="end-tag">span</span>></span><span></span><span></<span class="end-tag">h2</span>></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)中打开该文件,确保其外观符合预期。