import urllib2

import re

import xlwt

'''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!'''

class ZLZP(object):

def __init__(self,workname,citys):

# 记录查找工作名称

self.workname = workname

# 基础URL地址

self.url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?'

# 工作名称

args = 'kw=%s&jl='%workname

# 工作地点

for city in citys:

# 判断城市是否为最后一个

if city == citys[-1]:

args += city

else:

args += city

args += '%2B'

# kw=python&jl=北京%2B上海%2B南京%2B广州%2B深圳

# 拼接完整的url地址

self.url += args

self.headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'

}

# 根据页码获取某一页HTML源代码

def get_page(self,pageNum):

# 1.根据页码拼接完整的url地址

getUrl = self.url + '&p=%s'%pageNum

# 2.创建request对象

request = urllib2.Request(getUrl,headers=self.headers)

try:

response = urllib2.urlopen(request)

except Exception ,e:

print '获取第%s页数据失败,原因%s'%(pageNum,e)

return None

else:

return response.read()

# 从html代码中提取总职位数

def get_total(self,html):

# 1.准备正则表达式

pattern = re.compile(r'(.*?).*?

(.*?)(.*?)',re.S)

# 2.从html源代码中搜索

results = re.findall(pattern,html)

# 3.去除数据中标签

rs_data = []

for rs in results:

remove_b = re.compile(r'<.>',re.S)

name = re.sub(remove_b,'',rs[0])

rs_tp = (name,rs[1],rs[2],rs[3])

rs_data.append(rs_tp)

return rs_data

# 开始爬虫函数

def start(self):

# 1.获取第一页查询职位的HTML源代码

html = self.get_page(1)

if html == None:

return

# 2.从html源代码中提取总职位数

self.get_total(html)

# 3.for循环循环总页数次(循环10次)

# 创建workbook对象

workbook = xlwt.Workbook(encoding='utf-8')

print type(self.workname)

# unicode 将一个str类型的字符串转换为unicode字符

# 中文编码格式GBK,

print type(unicode(self.workname,encoding='utf-8'))

name = u'智联表'+unicode(self.workname,encoding='utf-8')

print type(name)

sheet = workbook.add_sheet(name)

sheet.write(0,0,'职位名称')

sheet.write(0,1,'公司名称')

sheet.write(0,2,'职位月薪')

sheet.write(0,3,'工作地点')

# count 记录当前的行号

count = 1

for x in range(1,11):

# 1.根据页码获取该页的HTML源代码

print '正在写入第%s页数据....'%x

html = self.get_page(x)

if html == None:

continue

# 2.从html源代码中提取数据

rs_data = self.get_data(html)

# 3.写入本地文件

for rs in rs_data:

sheet.write(count,0,rs[0])

sheet.write(count,1,rs[1])

sheet.write(count,2,rs[2])

sheet.write(count,3,rs[3])

count+=1

# 保存文件

print type(self.workname)

filename = u'智联%s职位信息.xls'%unicode(self.workname,encoding='utf-8')

workbook.save(filename)

'''Python3之前:要存储到本地的数据,保证是UTF-8编码要在Python中使用的字符,保证是Unicode类型的字符unicode(self.workname,encoding='utf-8')字符串类型 str 输入的文本内容、''或""包裹的文本'''

if __name__ == '__main__':

workname = raw_input('请输入要查询的工作名称:')

# 存放工作城市

citys = []

# 只要城市小于5个,继续输入城市

while len(citys) < 5:

city = raw_input('请输入意向城市,最多输入5个,输入0结束:')

if city == '0':

break

citys.append(city)

zlzp = ZLZP(workname,citys)

zlzp.start()

智联招聘python岗位_Python爬虫爬取智联招聘职位信息相关推荐

  1. python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...

  2. python段子_python爬虫爬取段子

    #-*-coding:utf-8 import requests import os from bs4 import BeautifulSoup import lxml import sys #改变系 ...

  3. python爬取简历_python爬虫爬取智联简历?

    一.网页请求方式 GET方法和POST 方法.与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分.在发送密码或其他敏感信息时绝不要使用 GET 方法.POST 比 GET ...

  4. python个人简历爬取_python爬虫爬取智联简历?

    一.网页请求方式 GET方法和POST 方法.与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分.在发送密码或其他敏感信息时绝不要使用 GET 方法.POST 比 GET ...

  5. python学习笔记爬虫——爬取智联招聘信息

    目的:自己输入指定地方,指定职业,起始页数,程序会自动打印页面的所有信息. 实现过程:这次程序的代码跟以往的都不一样,这次也是我第一次使用面向对象式编程,并且并不是分析网页代码,分析json字符串得到 ...

  6. python爬取flash数据_python爬虫: 爬取flash播放页面的信息

    我们通过查看知道flash类型的网页采取文件格式是amf类型的 AMF(Action Message Format) 是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层 ...

  7. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  8. python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩

    python + selenium +pyquery 爬虫  爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩 用到的库和源码下载地址 需要用到chromedriver  包含wi ...

  9. python爬虫爬取大众点评店铺简介信息

    python爬虫爬取大众点评店铺简介信息 写作目的: 爬取目标 大众点评的保护机制 应对方法 还存在的问题 写作目的: 今天帮朋友一个忙,要爬取一些大众点评上的数据.结果发现大众点评的防爬机制还挺多的 ...

最新文章

  1. linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统
  2. c++多线程队列 类对象
  3. git通过authorized_keys来管理用户的权限(二)
  4. python交互模式什么意思_Python中的交互模式是什么
  5. Hibernate和UUID标识符
  6. go语言快速刷《程序员面试金典》(1)
  7. fcpx插件:50组唯美梦幻棱镜光晕效果预设MotionVFXmPrism
  8. java成神之——Fork/Join基本使用
  9. centos6.5 redis3 开机自动启动命令设置
  10. 商(quotient)—— 两数之比
  11. cesium 经纬度绘制点_Cesium经纬度与坐标的问题
  12. 一道简单的但是经典的动态规划题目
  13. 17. 装箱、拆箱的最小化
  14. 使用Microsoft Office Visio 2007 绘图
  15. fread函数和fwrite函数用法
  16. 如何在路由上封掉某个ip或某个断口
  17. 卸载office 2016 报错:错误1321
  18. python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT
  19. 体系结构学习11-VLIW处理器
  20. 工信部ICP备案管理系统滑动验证码破解

热门文章

  1. 怎么更新android 10.0,Android 10.0(Q OS)系统升级计划Androi
  2. python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解
  3. Elasticsearch master节点的作用以及脑裂现象
  4. mysql事务提交模式
  5. 一个神级般的 Python 调试神器
  6. 肝!超好懂的 Python 文件读写教程!
  7. turbo译码器 matlab,短帧Turbo译码器的FPGA实现
  8. prometheus连续查询_Grafana + Prometheus快速搭建监控平台
  9. 阿云搭建php博客,阿云的应聘故事
  10. 交大计算机基础知识第一次作业,上海交大计算机第一次作业