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

时间:2015-08-17 02:00:24

标签: python urllib

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

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

    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 ('----------------')
    

1 个答案:

答案 0 :(得分:1)

当你这样做时 -

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

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

然后在此之后你不能打电话 -

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

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

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