兴趣来潮,爬了下51job,但是遇到编码问题!以下是简单的一段代码

获取整个页面数据

# -*- coding:utf-8 -*-
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
def spider(url):
session = requests.Session()
html = session.get(url, headers=headers)
return html url = 'http://www.51job.com/'
html = spider(url)

结果:

print html.encoding
>>>ISO-8859-1

html.text中的某一段

print html.text
>>>langs : {
ts_qxjzw : 'ÇëÑ¡Ôñְλ' ,
queren : 'È·ÈÏ' ,
guanbi : '¹Ø±Õ' ,
yxdd : 'ÒÑÑ¡µØµã' ,
yxzn : 'ÒÑÑ¡Ö°ÄÜ' ,
yxhy : 'ÒÑÑ¡ÐÐÒµ' ,
nzdnxj : 'Äú×î¶àÄÜÑ¡Ôñ' ,
xiang : 'Ïî' ,
xjdq : 'Ñ¡ÔñµØÇø' ,
xj_xg : 'Ñ¡Ôñ/ÐÞ¸Ä' ,
zycs : 'Ö÷Òª³ÇÊÐ' ,
sysf : 'ËùÓÐÊ¡·Ý' ,
tspd : 'ÌØÊâƵµÀ',
qxjgzdd : 'ÇëÑ¡Ôñ¹¤×÷µØµã' ,
qxjznlb : 'ÇëÑ¡ÔñÖ°ÄÜÀà±ð' ,
qxjhylb : 'ÇëÑ¡ÔñÐÐÒµÀà±ð' ,
gzdd : '¹¤×÷µØµã' ,
buxian : '²»ÏÞ'
} ,

我设置html.text.decode('ISO-8859-1'),报错!UnicodeEncodeError: 'ascii' codec can't encode characters in position 249-254: ordinal not in range(128)

翻阅了些资料,最终添加了 html.encoding = 'gbk',搞定!

代码:

# -*- coding:utf-8 -*-
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
def spider(url):
session = requests.Session()
html = session.get(url, headers=headers)
html.encoding = 'gbk'
return html url = 'http://www.51job.com/'
html = spider(url)

展示html中的一段

print html.text
>>>langs : {
ts_qxjzw : '请选择职位' ,
queren : '确认' ,
guanbi : '关闭' ,
yxdd : '已选地点' ,
yxzn : '已选职能' ,
yxhy : '已选行业' ,
nzdnxj : '您最多能选择' ,
xiang : '项' ,
xjdq : '选择地区' ,
xj_xg : '选择/修改' ,
zycs : '主要城市' ,
sysf : '所有省份' ,
tspd : '特殊频道',
qxjgzdd : '请选择工作地点' ,
qxjznlb : '请选择职能类别' ,
qxjhylb : '请选择行业类别' ,
gzdd : '工作地点' ,
buxian : '不限'
} ,

爬取51job职位信息之编码问题的更多相关文章

  1. 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)

    上次挖了一个坑,今天终于填上了,还记得之前我们做的拉勾爬虫吗?那时我们实现了一页的爬取,今天让我们再接再厉,实现多页爬取,顺便实现职位和公司的关键词搜索功能. 之前的内容就不再介绍了,不熟悉的请一定要 ...

  2. python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]

    目录 前言 XPath的使用方法 XPath爬取数据 后言 @(目录) 前言 本章同样是解析网页,不过使用的解析技术为XPath. 相对于之前的BeautifulSoup,我感觉还行,也是一个比较常用 ...

  3. node.js爬虫爬取拉勾网职位信息

    简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳.杭州.西安.成都7个城市的数据,分别以前端.PHP.java.c++.python.Androi ...

  4. 基于selenium爬取拉勾网职位信息

    1.selenium Selenium 本是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.而这一特性为爬虫开发提供了一个选择及方向,由于其本身依赖 ...

  5. python爬虫(三) 用request爬取拉勾网职位信息

    request.Request类 如果想要在请求的时候添加一个请求头(增加请求头的原因是,如果不加请求头,那么在我们爬取得时候,可能会被限制),那么就必须使用request.Request类来实现,比 ...

  6. python爬取拉勾网职位信息-python相关职位

    import requestsimport mathimport pandas as pdimport timefrom lxml import etree url = 'https://www.la ...

  7. 【实战】用request爬取拉勾网职位信息

    from urllib import request import urllib import ssl import json url = 'https://www.lagou.com/jobs/po ...

  8. Python的scrapy之爬取51job网站的职位

    今天老师讲解了Python中的爬虫框架--scrapy,然后带领我们做了一个小爬虫--爬取51job网的职位信息,并且保存到数据库中 用的是Python3.6  pycharm编辑器 爬虫主体: im ...

  9. 爬取拉勾网招聘信息并使用xlwt存入Excel

    xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...

随机推荐

  1. [java] java 设计模式(2):抽象工厂模式(Abstract Factory)

    工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这 ...

  2. c语言常用数据类型转换整理

    你要发送原始数据流 还是 格式化输出? 如果是格式化 按原子说的 ,用sprintf / printf; 如果发送原始内存数据流, 可按下面发送, 发送 #define BYTE0(pointer) ...

  3. git for c#, commit本地,pushserver

    //ok private static void push() { string wkDir = @"E:\DotNet2010\单位project\Git.Client\lib2Test\ ...

  4. JBPM4.4_管理流程定义

    1. 管理流程定义 没有更新功能 1.1. 部署流程定义 注意区分Deployment与ProcessDefinition 1.1.1. 示例代码1:流程定义有关文件在classpath中 Strin ...

  5. day15<集合框架>

    集合框架(对象数组的概述和使用) 集合框架(集合的由来及集合继承体系图) 集合框架(Collection集合的基本功能测试) 集合框架(集合的遍历之集合转数组遍历) 集合框架(Collection集合 ...

  6. ios开发之 -- 自动轮播图创建

    这里是oc版本的,简单记录下: 具体代码如下: 1,准备 #define FRAME [[UIScreen mainScreen] bounds] #define WIDTH FRAME.size.w ...

  7. mybatis 返回值类型是Map

    <select id="selectByMemberKey" resultType="java.util.HashMap"> SELECT memb ...

  8. 《C++ Primer Plus》第14章 C++中的代码重用 学习笔记

    C++提供了集中重用代码的手段.第13章介绍的共有继承能够建立is-a关系,这样派生类可以重用基类的代码.私有继承和保护继承也使得能够重用基类的代码,单建立的是has-a关系.使用私有继承时,积累的公 ...

  9. Day05_C操作符及二进制补码计算

    回顾:  1.数据类型  2.二进制(八进制,十六进制) --------------------------------------------------------- 计算机中不可以使用负号表示 ...

  10. Dockerfile分享之SSH Server

    版权声明:本文由姚俊刚原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/84 来源:腾云阁 https://www.qclou ...