在刚学Python时我估计谁也会有一些编码问题。。。。。。于是我就碰上了,恩。。。果然厉害,其实没多大点事,但就是绕不出来,查各种问题解答。。。。。。
我是想将所爬到的页面下载下来,保存到本地,再做解析工作,但就这保存到本地出现了差错:
在执行到f.write(html)时,出现了问题:
UnicodeEncodeError: 'gbk' codec can't encode character '\xba' in position 89443:
illegal multibyte sequence
html是长这个样子(return的返回值便是html):
后来在网上找了好多资料,整理一些在下面:
首先,要搞清到底谁是默认编码(Python的默认编码是谁,系统的编码是谁,而所爬页面的编码是谁)
而我的错误一开始就一个,一直是他,从未超越:
UnicodeEncodeError: 'gbk' codec can't encode character '\xba' in position 89443:
illegal multibyte sequence
我看了半天,又查了好一会儿,终于找见一个问题和我差不多的答案:要看看“\xba”是什么
过分了。。。。。。竟然是个“。”
我按照这种方法改了改,但还是没解决,而且出现了新的错误:TypeError: a bytes-like object is required, not 'str'
好不容易改出来了,结果发现错误变回去了:
UnicodeEncodeError: 'gbk' codec can't encode character '\u3e14' in position 1223
74: illegal multibyte sequence
看了看这“\u3e14”是什么:
好,我服了。。。
之后就这样浑浑噩噩的瞎看看网上说法,没想到啊没想到,让我找见一个知乎帖子,里面的帖子写了:
里面的一个评论救了我:
我只是把代码截图了,可以去上面的链解里找见完整的回答(原谅我的懒)。
恩,最后我的问题解决了。。。当然,也不是完全解决掉,还是有一些编码的知识没搞懂,欢迎留言,能让我多学习学习,感激不尽!
总结来说,关于这方面的帖子和博客真不少,看来是门厉害的学问,小问题也难住不少人,要是能把这些学好,也很厉害哦!!