无法使用 urllib.request 解码 HTML 页面

Unable to decode HTML page with urllib.request

我编写了以下代码,用于搜索 URL 并将 HTML 保存到文本文件中。但是,我有两个问题

  1. 最重要的是,它不会像这样在 HTML 中保存 € 和 £。这可能是我试图修复的解码问题,但到目前为止还没有成功
  2. 下面的代码没有将HTML中的“\n”替换为“”。这对我来说并不重要,但我很好奇为什么它不起作用

有什么想法吗?

import urllib.request

while True: # this is an infinite loop
    with urllib.request.urlopen('WEBSITE_URL') as f:
        fDecoded = f.read().decode('utf-8')
        data = str(fDecoded .read()).replace('\n', '') # does not seem to work?

    myfile = open("TestFile.txt", "r+")
    myfile.write(data)
    print ('----------------')

当你这样做时 -

fDecoded = f.read().decode('utf-8')

fDecoded 已经是 str 类型,您正在从请求中读取字节字符串并使用 utf-8 编码将其解码为 str

然后你不能再调用-

str(fDecoded .read()).replace('\n', '')

str 没有方法 read() 并且您实际上不需要再次将其转换为 str 。只是做 -

data = fDecoded.replace('\n', '')