一些遇到过的python error解决方法。
UnicodeEncodeError
用urllib和BeautifulSoup抓取网页的时候,打印出来结果报错:
UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xbb’ in position 26322: illegal multibyte sequence
检查了下要抓取的网页源码发现网页也是用的utf-8,于是查了下发现是print()函数自身有限制(python默认编码的局限),不能完全打印所有的unicode字符。
解决方法一:打印的时候用.decode(‘utf-8’)。
解决方法二:改下python的默认编码。
urllib.error.HTTPError: HTTP Error 403: Forbidden
用 urllib.request.urlopen 方式打开一个URL,服务器端只会收到一个单纯的对于该页面访问的请求,但是服务器并不知道发送这个请求使用的浏览器,操作系统,硬件平台等信息,而缺失这些信息的请求往往都是非正常的访问,例如爬虫.
有些网站为了防止这种非正常的访问,会验证请求信息中的UserAgent(它的信息包括硬件平台、系统软件、应用软件和用户个人偏好),如果UserAgent存在异常或者是不存在,那么这次请求将会被拒绝(如上错误信息所示)
所以可以尝试在请求中加入UserAgent的信息
解决方法:改下python的默认编码。