无法使用 urllib.request 解码 HTML 页面
Unable to decode HTML page with urllib.request
我编写了以下代码,用于搜索 URL 并将 HTML 保存到文本文件中。但是,我有两个问题
- 最重要的是,它不会像这样在 HTML 中保存 € 和 £。这可能是我试图修复的解码问题,但到目前为止还没有成功
- 下面的代码没有将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', '')
我编写了以下代码,用于搜索 URL 并将 HTML 保存到文本文件中。但是,我有两个问题
- 最重要的是,它不会像这样在 HTML 中保存 € 和 £。这可能是我试图修复的解码问题,但到目前为止还没有成功
- 下面的代码没有将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', '')