当从本地文件而不是web打开HTML文件时,如何对其进行解码?

当从本地文件而不是web打开HTML文件时,如何对其进行解码?,html,python-3.4,urllib,string-decoding,Html,Python 3.4,Urllib,String Decoding,我试图编写一个HTML解析器,但在测试期间,我不想每次都查询网站,所以我将网站保存为本地HTML文件 对于阅读,我使用: urltext = urllib.request.urlopen(urlfile).read().decode("utf-8") 我直接从网站上获得了要解析的正确字符串,但当我从本地pc打开它时,它似乎有一个错误的解码: <span id="line845"></span> </span>

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

对于阅读,我使用:

urltext = urllib.request.urlopen(urlfile).read().decode("utf-8")
我直接从网站上获得了要解析的正确字符串,但当我从本地pc打开它时,它似乎有一个错误的解码:

<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=“文章标题”
span class=“headline intro”intro:/span class=“headline”正文/span/h2
本来应该是这样的:

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

简介:正文
知道我做错了什么吗

塔克斯


Kev

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

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

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


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

如果您在记事本中手动打开文件,它看起来像哪个版本?在Gedit中(或者我猜也是在记事本中),它的版本错误。如果我在Libre Office中打开它,就可以了。听起来好像你打开了网站的源代码,然后将其复制粘贴到Libre Office中,然后将文件保存为HTML。我说得对吗?那不行。HTML是纯文本格式,libre office创建富文本文件(即,包括字体信息、文本颜色等)。你看到的奇怪的“额外”东西是超富文本格式。