Python 爬虫过程中的中文乱码问题

python+mongodb

在爬虫的过程中,抓到一个中文字段,encode和decode都无法正确显示

注:以下print均是在mongodb中截图显示的,在pythonshell中可能会有所不同

比如中文 “余年”,假设其为变量a

1. print a 结果如下:

使用type查询之后,显示的确是unicode编码(正常情况下讲unicode编码内容直接存入mongodb中是可以正常显示的)

2. print type(a) 结果如下:

3. print a.encode(‘utf-8‘) 结果如下:

然后查看a的unicode编码,是这种格式  u‘‘\xe4\xbd\x99\xe5\xb9\xb4"

解决办法:

a = a.encode(‘ISO 8859-1‘)

这样将a的由unicode的type变成了str类型的type

然后就可以正确的保存到mongodb中了

Reference:

http://blog.csdn.net/myheadfirst/article/details/46635197

时间: 2024-12-20 00:04:23

Python 爬虫过程中的中文乱码问题的相关文章

使用notepad++学习python爬虫,print网页中文乱码问题

今天学习使用python爬虫的时候发现爬到的网页中文会乱码,一直网上搜索解决办法,一个一个试验过去,发现还是乱码,然后我就开始使用其它方法测试,用python自带的编辑器打开是正常的,发现是notepad++这款编辑器的问题,我更改了编码方式为utf-8无bom,尝试了所有设置,都没有用,新建,打开文件默认一直都是ansi格式,pynpp这款快捷打开.py格式的插件运行一直乱码,虽然没有发现问题的根源,但是知道编码是没有问题的,主要是这款编辑器出现的一些小问题 不过百度过后发现如果是乱码问题,最

C# Oracle insert 过程中出现中文乱码问题

上一篇记录了C#实现sql server 2005 和oracle 两个数据库同步工具,今天在将工具拷贝到服务器上运行时出现了同步过来的中文字符变成了乱码,百度一番后解决了该问题,将解决过程记录如下: 1.服务器上安装了独立的Oracle 客户端,百度后发现有人说是oracle 客户端编码与oracle 数据库服务器编码不一致造成的. 修改客户端编码有两种: 一.通过window 注册表,修改: 二.通过环境变量: 我选择的是第二种方式,因为Oracle 客户端不是安装程序,而是一大堆文件: O

[记录]Python爬虫过程中遇到的简单带干扰线验证码处理方法

前言: 这些天,人力资源部有个需求:需要定期检查短信猫平台账号余额,于是乎,我向短信平台提交这个查询需求,对方给我答复是没办法.如此一来,只能看看能否通过用爬虫的方法去爬取后台数据了. 一.观察目标站点 使用开发者模式看了下目标站点,登陆是非常简单的三个选项:用户名,密码,验证码.验证码是由4位纯数字组成,每次通过get请求随机验证码的方法来刷新验证码.好了,观察到这,大致思路有了:get请求验证码图片,保存到本地进行识别,识别到的验证码加上用户名密码提交,去查询短信平台账号余额.到这里又有一个

sae python中Mysql中文乱码的解决

一开始我用的是: db=MySQLdb.connect(db=sae.const.MYSQL_DB,user=sae.const.MYSQL_USER,passwd=sae.const.MYSQL_PASS,host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT)) 数据库编码与python代码的编码都已设为utf8,在PHPMyAdmin中添加中文记录,在网页查询显示中却显示乱码,我在网上各种搜索都找不到解决方法.最后终于发现在连接数据库

解决Centos 6.3 中 gedit中文乱码问题

1.安装gconf-editor yum list | grep conf-editor yum install gconf-editor 2.运行gconf-editor 设置: apps  ---> gedit-2  --->  preferences  ----> encoding auto-detected 项添加Add New list value: GB2312 shown_in_menu 项添加 New list value: GB2312  解决Centos 6.3 中

jsp get方式请求参数中包含中文乱码问题解决

1. 自己接收到参数之后在后台进行转码处理 2: 修改tomcat的配置文件  server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> 即可 jsp get方式请求参数中包含中文乱码问题解决,布布扣,bubuk

分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[[email protected] include]# pwd/data/www/zabbix/include[[email protected] include]# vim locales.inc.php 然

C#中WebClient中文乱码的解决办法

原文:C#中WebClient中文乱码的解决办法 第一次尝试: string question = textBox1.Text.ToString(); WebClient youdao = new WebClient(); youdao.Encoding = System.Text.Encoding.GetEncoding("GB2312"); Uri uri = new Uri("http://xxxxxxxxxxxxxx"); textBox1.Text =yo

cocos2dx学习笔记(4)——VS2010中的中文乱码问题

当你想使用中文时,你是否有这样的一个困惑. 把样例中的HelloWorld改成中文的 "你好,世界!". 然后编译运行,发现居然是个乱码!!! 因为cocos2dx中使用的是UTF-8字符集,而VS中确实ANSI. 所以我们需要对其进行字符集转换. 然后纵里寻它求百度,终于找到了解决方案. 一个函数搞定! #include "cocos2d.h" char* toUTF(const char* strGB2312) { int iLen = MultiByteToW