beatifulsoup windows下 乱码问题解决方案
2016-03-23 10:59
218 查看
乱码的问题困扰着windows下学python的初学者,我在网上搜索了好些办法终于得以解决:
先贴不会出问题的代码:
这里 如果不对wb_data.content处理,直接beautifulsoup操作的话会出现乱码
先贴不会出问题的代码:
#encoding = "utf-8" from bs4 import BeautifulSoup import time import re import requests import chardet import codecs import lxml url = "http://gupiao.baidu.com/stock/sz002236.html?from=aladingpc" while (True): wb_data = requests.get(url) print(wb_data.status_code) print(chardet.detect(wb_data.content)) s = wb_data.content.decode('utf-8') soup = BeautifulSoup(s,'lxml') print (soup) title = soup.select('div.price') print (title) # print(data) time.sleep(3) f = open('e:\\python\\1.txt','w+',encoding='utf-8') print(soup,file=f) f.close() break
这里 如果不对wb_data.content处理,直接beautifulsoup操作的话会出现乱码
s = wb_data.content.decode('utf-8')
则print出来中文字符会变成乱码无法解析,网上给出的原因是因为windows 下print函数在python中使用的解释器为gbk,这里我将wb_data.content 得到的二进制流重新decode成utf-8 (指定为utf-8解码)就ok了。
至于写文件的时候如果:f = open('e:\\python\\1.txt','w+',encoding='utf-8')不增加encoding='utf-8',同样会出现 windows 默认用gbk解码失败的问题。问题同上。强制解释器就ok了。</span>
相关文章推荐
- 还原SQLServer镜像数据库库普通数据库
- 效果插件网站收集
- 【R笔记】apply函数族
- DBscan算法及其Python实现
- iOS开发——UIImageView
- JVM参数配置大全
- 怎么在Mac上安装Tomcat 7
- 【Web优化】Yslow优化法则(二)使用CDN
- IOS viewDidLoad方法被执行两次(viewDidLoad和loadView方法详解)
- oracle数据库创建表空间步骤
- java 日志技术汇总
- 【Egret】 3D 使用中的一些疑难解决技巧!
- HDOJ 2089 不要62(打表)
- 关闭log4j 输出 DEBUG org.apache.commons.beanutils.*
- HDOJ 2089 不要62(打表)
- Android四大基本组件介绍与生命周期
- 【R笔记】order函数例子
- mysql之触发器
- C#操作SQLite方法实例详解
- Extreme Learning Machine的Java源码配置