美文网首页
python爬虫中文输出问题以及不即时输出问题

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

作者: 丶不见长安丶 | 来源:发表于2017-12-15 00:15 被阅读0次

    使用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(),未验证

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/yztrwxtx.html