智联招聘python岗位_Python爬虫爬取智联招聘职位信息
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爬虫爬取智联招聘职位信息相关推荐
- python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)
点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...
- python段子_python爬虫爬取段子
#-*-coding:utf-8 import requests import os from bs4 import BeautifulSoup import lxml import sys #改变系 ...
- python爬取简历_python爬虫爬取智联简历?
一.网页请求方式 GET方法和POST 方法.与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分.在发送密码或其他敏感信息时绝不要使用 GET 方法.POST 比 GET ...
- python个人简历爬取_python爬虫爬取智联简历?
一.网页请求方式 GET方法和POST 方法.与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分.在发送密码或其他敏感信息时绝不要使用 GET 方法.POST 比 GET ...
- python学习笔记爬虫——爬取智联招聘信息
目的:自己输入指定地方,指定职业,起始页数,程序会自动打印页面的所有信息. 实现过程:这次程序的代码跟以往的都不一样,这次也是我第一次使用面向对象式编程,并且并不是分析网页代码,分析json字符串得到 ...
- python爬取flash数据_python爬虫: 爬取flash播放页面的信息
我们通过查看知道flash类型的网页采取文件格式是amf类型的 AMF(Action Message Format) 是Flash与服务端通信的一种常见的二进制编码模式,其传输效率高,可以在HTTP层 ...
- python爬虫爬取当当网的商品信息
python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...
- python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩
python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩 用到的库和源码下载地址 需要用到chromedriver 包含wi ...
- python爬虫爬取大众点评店铺简介信息
python爬虫爬取大众点评店铺简介信息 写作目的: 爬取目标 大众点评的保护机制 应对方法 还存在的问题 写作目的: 今天帮朋友一个忙,要爬取一些大众点评上的数据.结果发现大众点评的防爬机制还挺多的 ...
最新文章
- linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统
- c++多线程队列 类对象
- git通过authorized_keys来管理用户的权限(二)
- python交互模式什么意思_Python中的交互模式是什么
- Hibernate和UUID标识符
- go语言快速刷《程序员面试金典》(1)
- fcpx插件:50组唯美梦幻棱镜光晕效果预设MotionVFXmPrism
- java成神之——Fork/Join基本使用
- centos6.5 redis3 开机自动启动命令设置
- 商(quotient)—— 两数之比
- cesium 经纬度绘制点_Cesium经纬度与坐标的问题
- 一道简单的但是经典的动态规划题目
- 17. 装箱、拆箱的最小化
- 使用Microsoft Office Visio 2007 绘图
- fread函数和fwrite函数用法
- 如何在路由上封掉某个ip或某个断口
- 卸载office 2016 报错:错误1321
- python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT
- 体系结构学习11-VLIW处理器
- 工信部ICP备案管理系统滑动验证码破解
热门文章
- 怎么更新android 10.0,Android 10.0(Q OS)系统升级计划Androi
- python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解
- Elasticsearch master节点的作用以及脑裂现象
- mysql事务提交模式
- 一个神级般的 Python 调试神器
- 肝!超好懂的 Python 文件读写教程!
- turbo译码器 matlab,短帧Turbo译码器的FPGA实现
- prometheus连续查询_Grafana + Prometheus快速搭建监控平台
- 阿云搭建php博客,阿云的应聘故事
- 交大计算机基础知识第一次作业,上海交大计算机第一次作业