**1.AttributeError: ‘_io.BufferedWriter’ object has no attribute ‘wirte’
with open('baidu2.com','wb') as fp:
fp.wirte(response.read())
改:
with open('baidu2.com','wb') as fp:
fp.write(response.read())
单词拼错了。。。。。
2.[Errno 2] No such file or directory**
`with open('taile.jpg','wb') as fp:.
fp write(response.read())`
。。。。。。标点符号漏写语法无效
import urllib.parse
url ='http://www.baidu.com/'
response=urllib.request.urlopen(url)
print(response.read().decode())
UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 29531: illegal multibyte sequence
[Finished in 0.8s]
Python中如何处理UnicodeDecodeError和UnicodeEncodeError
1.仔细分析错误的类型
2.搞清自己处理的字符串是什么类型的
3.然后换用这种的字符编码去编码或解码
1.仔细分析错误的类型
(1)错误是Unicode的编码还是解码
以上为例
UnicodeEncodeError:
意思是:Unicode的解码(Decode)出现错误(Error)了
假设一个场景:你当前正在处理某种编码类型的字符串
想、把字符串解码成Unicode,
但是在解码过程中出现了错误
(2)所用的是何种编码
‘gbk’ codec can’t encode
错误明显
是以gbk编码的方式去解码(该字符串变成Unicode)的
但是此处通过gbk的方式,却无法解码(can’t decode )
注:此处的codec,意思是:编解码(器),是Python内部的模块,用来编码或解码(字符串)的
原因及解决办法
好了,针对于上面所分析出来的信息:
将一个字符串,通过gbk的方式,去解码,想要获得Unicode字符串,结果出错了
此种错误,有几种可能:
(1)要处理的字符串本身不是gbk编码,但是你却以gbk编码去解码
比如,字符串本身是utf-8的,但是你却用gbk去解码utf-8的字符串
解决办法:
如果你确定当前字符串,比如抓取网页通过charset=utf-8,已经确定html的字符串是utf-8的,
则可以直接去通过utf-8去解码。