解决爬虫中文乱码问题

解决爬虫中文乱码问题

今天群里有个人反映某个网址爬出来的网页源代码出现中文乱码,我研究了半天,终于找到了解决方法。

一开始,我是这样做的:

import requestsurl = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9'
print requests.get(url).content

这样做,如果用命令行去运行,得到的内容中文显示正常,但如果用pycharm运行得到的确实乱码。

这个问题我一时半会还不知道是为什么,如果有人知道,请告诉我,谢谢!

 

后来,我在网上查阅资料,发现可以通过下面这种方式解决中文乱码问题:

首先,我们在浏览器中打开网址,通过查看源代码可以发现这个网址采用的编码是GBK:

然后我们通过下面这段代码发现通过requests获取的编码不是GBK,而是ISO-8859-1。

import requestsurl = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9'
print requests.get(url).encoding

所以打印出来的就是乱码,我们需要将编码改为GBK才可以:

复制代码
import requestsurl = 'http://search.51job.com/jobsearch/search_result.php?fromJs=1&jobarea=090200%2C00&funtype=0000&industrytype=00&keyword=python&keywordtype=2&lang=c&stype=2&postchannel=0000&fromType=1&confirmdate=9' r = requests.get(url) r.encoding = 'GBK' print r.text
复制代码

这样做,无论你是用pycharm还是命令行去运行,得到的都是正常的中文了。

posted on 2016-12-20 01:23 Kilichko 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Yemilice/p/6201224.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录每个用户的操作记录(命令)

通过设置日志文件可以对每个用户的每一条命令进行记录,这一功能默认是不开放的,为了打开它,需要安装pacct工具,并执行以下命令: #touch /var/log/pacct #accton /var/log/pacct 执行读取命令lastcomm [user name] –f …

多进程 VS 多线程

在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快…

黑苹果SSDT使用

From: https://blog.csdn.net/qq_33544860/article/details/77320073 1.在Clover引导界面,按一下[F4],就会在EFI\CLOVER\ACPI\origin\生成好多*.aml的文件,例如APIC.aml,BGRT.aml,DSDT.aml,HPE…

c# 如何在webbrowser控件执行一段JS代码

var doc this.WebBrowser.Document.DomDocument as IHTMLDocument2; var win doc.parentWindow as IHTMLWindow2;string jscode "//这里写JS代码";win.execScript(jscode, "javascript");转载于:https://www.cnblogs.com/pasijiubiehuozhe/p/6201439.ht…

一夜暴富之前的漫漫长路

一夜暴富之前的漫漫长路发布于:2013-08-05 09:50阅读数:987那你现在在做什么? 唉,我讨厌这个问题。 事实上,我正在努力做一个新的项目,但没有取得任何的进展。 但是,我并没有抱怨什么&#xff0…

java开发过程中,报错Dangling meta character '*' near index 0,解决办法

From: https://blog.csdn.net/zhouzhiwengang/article/details/53493810 1、split方法转化字符串为数组: String[] strPicArr map.get("hw_pic").toString().split("*"); 报错: java.util.regex.PatternSyntaxException: Dangling…

演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤

各位童鞋注意:该实验完成可以使用GNS3与4虚拟机进行桥接,然后在一台物理计算机上完成,不虽要去拿真正的4台服务器或者交换机路由器来连成一个网络,现在大家都使用网络仿真教学与实验!Linux工程环境应用实训&#xff08…

Linux架构

Linux架构 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我以下图为基础,说明Linux的架构(architecture)。(该图参考《Advanced Programming in Unix Environment》) 最内层是硬件…

Linux C学习--getline()函数

getline()函数是什么?百度百科这样解释: getline不是C库函数,而是C库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函…

Mac10.14.4 独立显卡 影驰GTX 760 4GB成功驱动

先了解下这篇文章: https://blog.csdn.net/JoeBlackzqq/article/details/39612351 这是我的硬件配置! 当初装10.14.4时, 看网上文章说我的独显是无法驱动的,所以当时用的是我的核显(CPU i7-4770k HD4600)装上的. 但是在系统稳定的跑了个把月后,不知什么原因(一阵电流声), 我…

在Windows上编译MongoDB C Driver

2019独角兽企业重金招聘Python工程师标准>>> Mongodb 是采用 Scons 来构建的。Scons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具。所以要编译MongoDB的C语言驱动,不仅要有C/C开发环境&#xff0…

异常处理_Maven之web项目java.lang.LinkageError

浏览器运行项目异常如下: HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjava.lang.LinkageError: loader constraint violation: when resolving interfa…

Linux内核代码风格

Linux内核代码风格 这是一个简短的文档,描述了linux内核的首选代码风格。代码风格是因人而异的,而且我不愿意把我的观点强加给任何人,不过这里所讲述的是我必须要维护的代码所遵守的风格,并且我也希望绝大多数其他代码也能遵守这个…

ant-design table 分页(tableProps)

From: https://www.cnblogs.com/crazycode2/p/9704382.html 1.布局 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <Table dataSource{this.state.tableDetailList} scroll{{ y: 200px }} style{{tableLayout: fixed}} pagination{{ pageSize: 12 }} columns{columns1} r…

pyramid新建项目

2019独角兽企业重金招聘Python工程师标准>>> 例子&#xff1a;本项目在D盘 (1) C&#xff1a;\Users\Adminstrator>D: #进入到D盘 (2) D:>mkdir test #新建目录test (3) D&#xff1a;\cd test #进入test目录 (4) D:\test>pcreate -s starter myproject #新…

Linux环境下段错误的产生原因及调试方法小结

LZ看到一篇关于Linux环境段错误的产生原因的文章&#xff0c;感觉不错&#xff0c;但不是C博客里面&#xff0c;不知如何转载&#xff0c;这里转贴过来&#xff0c;感谢原博主&#xff0c;文章如下: Linux环境下段错误的产生原因及调试方法小结 1. 段错误是什么 一句话来说&am…

【BZOJ3036】绿豆蛙的归宿 拓补排序+概率

【BZOJ3036】绿豆蛙的归宿 Description 随着新版百度空间的下线&#xff0c;Blog宠物绿豆蛙完成了它的使命&#xff0c;去寻找它新的归宿。 给出一个有向无环的连通图&#xff0c;起点为1终点为N&#xff0c;每条边都有一个长度。绿豆蛙从起点出发&#xff0c;走向终点。到达每…

cnpm与npm的区别

From: https://blog.csdn.net/chi1130/article/details/72773278 npm介绍 说明&#xff1a;npm&#xff08;node package manager&#xff09;是nodejs的包管理器&#xff0c;用于node插件管理&#xff08;包括安装、卸载、管理依赖等&#xff09; 使用npm安装插件&#xff1…

Linux C 学习 单向链表

最近从Linux C数据结构和算法学起&#xff0c;下面是一个单向链表的写法&#xff0c;代码如下&#xff1a; [cpp] view plaincopy #include <stdio.h> #include <malloc.h> int n0; typedef struct code { int data; struct code *next; }Li…

《C专家编程》第二章——这不是Bug,而是语言特性

无论一门语言有多么流行或多么优秀&#xff0c;它总是存在一些问题&#xff0c;&#xff23;语言也不例外。本章讨论的重点是&#xff23;语言本身存在的问题&#xff0c;作者煞费苦心的用一个太空任务和软件的故事开头&#xff0c;也用另一个太空任务和软件的故事结尾&#xf…