在 Windows 下用爬虫将网页爬取并存到文件里时,出现编码错误
在 Windows 下用爬虫爬取某个页面,当把该页面写入到本地的文件中时,会出现TypeError: write() argument must be str, not bytes
的错误,这是因为直接从目标服务器上获取的内容是 bytes
类型,而文件写入需要是 str
类型,所以需要对获取的内容进行解码.
例如:
#!/usr/bin/env python3
# 获取响应
>>> response = urllib.request.urlopen(url)
# 得到响应内容
>>> data = response.read()
# 对获得的内容进行解码
>>> data = data.decode('utf-8')
# 然后再将内容写入到文件中
在 Linux 中这样是没有问题的,但是在 Windows 下,会出现 UnicodeEncodeError: 'gbk' codec can't encode characte