目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中

####基本环境配置:

  • Python版本:2.7
  • 开发工具:pycharm
  • 系统:win10
    ####相关模块:
import urllib2
import re
import xlwt

####完整代码:

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 += cityelse:args += cityargs += '%2B'# kw=python&jl=北京%2B上海%2B南京%2B广州%2B深圳# 拼接完整的url地址self.url += argsself.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 Noneelse:return response.read()# 从html代码中提取总职位数def get_total(self,html):# 1.准备正则表达式pattern = re.compile(r'<span class="search_yx_tj.*?em>(.*?)</em>',re.S)# 2.根据正则表达式从源代码中查找数据rs = re.search(pattern,html)# 3.记录总职位数,计算总页数total = int(rs.group(1))print  '共搜索到%s个相关职位信息...'%total# 不能被60整除,总页码+1if total%60 == 0:self.totalPage = total/60else:self.totalPage = total/60+1# 提取数据函数def get_data(self,html):# 1.准备正则# print htmlpattern = re.compile(r'<table.*?class="newlist.*?<td class="zwmc.*?<a.*?>(.*?)</a>.*?<td class="gsmc.*?_blank">(.*?)</a>.*?<td class="zwyx">(.*?)</td.*?<td class="gzdd">(.*?)</td>',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 = 1for x in range(1,11):# 1.根据页码获取该页的HTML源代码print '正在写入第%s页数据....'%xhtml = 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':breakcitys.append(city)zlzp = ZLZP(workname,citys)zlzp.start()

【Python爬虫案例学习20】Python爬虫爬取智联招聘职位信息相关推荐

  1. Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...

  2. 智联招聘python岗位_Python爬虫爬取智联招聘职位信息

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

  3. Python爬取智联招聘职位信息

    这是一次失败的尝试 , 事情是这样的-- 1.起因 前段时间刚刚学完爬虫,于是准备找个项目练练手.因为想要了解一下"数据挖掘"的职位招聘现状,所以我打算对'智联招聘'下手了.网上当 ...

  4. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  5. 爬虫练习二:爬取智联招聘职位信息

    1. 简介 因为想要找到一个数据分析的工作,能够了解到市面上现有的职位招聘信息也会对找工作有所帮助. 今天就来爬取一下智联招聘上数据分析师的招聘信息,并存入本地的MySQL. 2. 页面分析 2.1 ...

  6. java爬取智联招聘职位信息

    第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息. 技术点:IO流,集合,Jsoup使用,以及前端的知识 代码如下: package com.wty.utils;import java.io ...

  7. pythton爬取智联招聘职位信息

    前言 在智联招聘https://sou.zhaopin.com/时,发现无法直接去解析获得的html文本,它的数据是用js动态加载的,数据内容存储在json文件中,所以不能用以前的方法使用xpath. ...

  8. selenium+PyQuery+chrome headless 爬取智联招聘求职信息

    最近导师让自己摸索摸索Python爬虫,好了就开始一发不可收拾的地步.正巧又碰到有位同学需要一些求职信息对求职信息进行数据分析,本着练练手的目的写了用Python爬取智联招聘网站的信息.这一爬取不得了 ...

  9. Python网络爬虫爬取智联招聘职位

    观察网站结构. 打开智联招聘网页,搜索数据分析师,出来很多招聘岗位,限定全国范围,从下图看出有12354个职位,一共有90页,看最后一页职位已经只是和数据分析师相关而已. 看看最后一页搜索结果 PS: ...

最新文章

  1. python 数据分析学什么-数据分析培训学习多久?都学什么?
  2. Keepalived运行命令
  3. SpringBoot中关于Shiro权限管理的整合使用
  4. hpe服务器稳定性,hpe服务器安装与配置
  5. 飞畅科技-工业级以太网交换机常见问题解析!
  6. 自动添加html结束标志,HTML:包含或排除可选的结束标记?
  7. 工作160:总结VUE几种页面刷新方法
  8. php后台登录显示ok,thinkphp的项目 后台登录问题,怪事
  9. 前端错误捕获终级方案
  10. mpvue 调起子组件的方法_牢记 | 智鹏五金机电设备这些方法的使用更安全!
  11. 刘长春:未来云时代——红帽开放混合云驱动增长
  12. 数据结构之求二叉树叶子结点个数
  13. etl全量增量抽取方式
  14. 计算机带来好处坏处的英语作文,关于电脑的好处与坏处的英语作文
  15. LeetCode 227. 基本计算器 II 【c++/java详细题解】
  16. HugePages 大内存页
  17. 群晖docker容器内配置ubuntu远程桌面访问
  18. 2019.2以后idea插件库打不开解决办法(亲测可以使用)
  19. hdu1814 Peaceful Commission,2-sat
  20. 笔记本电脑换加内存条与加固态硬盘详细介绍

热门文章

  1. 论文笔记:疲劳检测与分心检测
  2. mysql数据 odbc_MySQL数据库之mysql odbc 配置详解、解决方案
  3. STEAM教育拥有过程和结果
  4. 弘辽科技:优化好淘宝标题关键词,提升排名不愁怕
  5. 编程很苦,开心一乐。让程序员崩溃的8个瞬间。
  6. 在线播放MP3音乐HTML代码
  7. elastix环境变量设置
  8. 鸿蒙系统能装在小米电视上吗,小米会用鸿蒙系统吗_小米会不会用鸿蒙系统
  9. 如何使用matlab从视频中提取出一帧帧图像
  10. 《万王之王3》主题歌歌词有奖大征集