python爬虫中文输出问题以及不即时输出问题

22 篇文章 0 订阅
21 篇文章 1 订阅

使用sublime运行爬虫程序时,会有报错UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence的情况,因为python安装在windows平台上,cmd的默认编码为GBK,所以在cmd中显示中文时会经常提示gbk编码错误。

网上搜索一下,其中一种解决方案是:

import io

import sys

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')#改变输出字符集

这样修改后问题是解决了,但是还会有个坑。爬虫程序在处理网页请求时需要时间,你如果想要判断程序是否在运行,可能会在不同的位置加打印语句来判断。这个时候因为前面的改变输出字符集操作,会导致整段程序全部跑完才会输出,而不是实时输出print语句,例如:



1按时

常理来说应该是先输出"你好",然后输出"你好1",等待10s后输出"你好2"

但是实际运行时,会卡住一会(延迟10s)然后同时输出"你好","你好1","你好2"

解决方法1:通过python自带的idle运行程序,idle默认支持中文输出,但是要去掉sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8'),不然会报错。

解决方法2:在要打印的地方加上sys.stdout.flush(),未验证

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值