【发布时间】:2012-04-15 14:54:32
【问题描述】:
如何在 Python 3 中将网站的源代码复制到文本文件中?
编辑: 为了澄清我的问题,这就是我所拥有的:
import urllib.request
def extractHTML(url):
f = open('temphtml.txt', 'w')
page = urllib.request.urlopen(url)
pagetext = page.read()
f.write(pagetext)
f.close()
extractHTML('http:www.google.com')
f.write() 函数出现以下错误:
builtins.TypeError: must be str, not bytes
【问题讨论】:
-
令人惊讶的是,没有一个答案(除了一个)实际上解决了这个问题。
pagetext不是字符串。它实际上是字节。因此,要将其转换为字符串,您需要使用f.write(pagetext.decode('utf-8'))将 UTF-8 编码的字符串写入文件。 -
@Brandon 我尝试了你所说的并得到一个错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 8482: invalid start byte。我只是在没有str()的情况下直接抄下了我的答案,然后用f.write(pagetext.decode('utf-8'))代替f.write(pagetext)。知道为什么这对我不起作用。如果您使用的是 Python 2,那可能就是原因
标签: python-3.x