1

我尝试编写一个 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>

任何想法我做错了什么?

谢谢

凯夫

4

1 回答 1

3

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

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

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

为了以正确的方式下载文档,请找到浏览器的“保存”功能。在大多数浏览器中,您只需按Ctrl / Cmd+即可S。完成后,在纯文本编辑器(如记事本、Gedit 或 TextEdit)中打开文件以确保其看起来符合预期。

于 2016-07-13T14:49:20.447 回答