在Python中将网址写入文件的时候,
会碰到:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position 0这个问题。
其实就是在windows中,新建的文本文件的默认编码是gbk.
编码解码需要对应
1、我们需要更改一下编码方式:如
with open("F:\\1.html","w",encoding="utf-8") as file:
2、对写入数据关于response.text 和response.content的区别
我们也需要了解
response.text
类型 : str
解码类型:根据HTTP头部对响应的编码做出有根据的推测,推测的文本编码
如何修改编码方式:response.encoding="gbk"
response.content
类型:bytes
- 解码类型: 没有指定
- 如何修改编码方式:response.content.deocde(“utf-8”)
总而言之:
resp.text返回的是Unicode型的数据。
resp.content返回的是bytes型也就是二进制的数据。
3、实例
对二数据进行编码解码
response=requests.get("https://2.python-requests.org//zh_CN/latest/user/quickstart.html")
content=response.content
with open("F:\\1.html","w",encoding="utf-8") as file:
file.write(content.decode("utf-8"))
file.close()
4、实例二
response=requests.get("https://2.python-requests.org//zh_CN/latest/user/quickstart.html")
print(response.encoding)
with open("f:\\2.html","w",encoding="ISO-8859-1") as file:
file.write(response.text)
file.close()