巧用 Python 找工作(资料在文末)
前言
近年来 Python 之火大家都有感而知,那亲们知道北京的 Python 开发岗位、运维开发岗位招聘地域都是如何分布的吗?薪水如何?是否有前景等等,这些数据呢直接通过招聘信息来了解到企业用人是最直接的,也是最简单的途径。
那本次将通过分享 Python 来抓取拉钩的招聘信息,然后加以分析,做一个北京的 Python 职位地域分布、薪资范围、福利待遇等维度出一个简单的分析报告,希望能帮助到想在 Python 这片田地耕耘的童鞋在发展方向上有所参考。
用到的工具
使用 Python 的 requests 工具到招聘网站爬取我们想要的数据,分析和可视化也使用 Python 的相关模块来实现,主要有如下:
- Python 版本:Python 3.x
- requests:发起请求,从网站抓取数据
- math:数学运算函数,向上取整,这里主要用于分析数据
- time:时间模块,主要是控制爬虫不会因为频繁请求而被网站拉进小黑屋
- pandas:数据抓取后使用该模块保存为 csv 文件到本地
- matplotlib:可视化画图
- pylab:设置画图能显示中文
- wordcloud、scipy、jieba(字符串分割成单词):生成中文词云
如何进行数据抓取
使用 Chrome 打开拉钩网站,在网站输入“Python开发” 职位,使用 “检查” 功能查看网页源码。发现拉钩有反爬机制,职位信息并不在源代码里,而是在 JSON 文件里,因此直接通过 JSON 获取数据即可。

抓取信息时,需要加上头部信息,才能获取到数据。(原理很简单:你得伪装成一个 正常的 client 去请求网页才能拿到想要的数据)
def get_json(url, num):
'''从网页获取JSON,使用POST请求,加上头部信息'''
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
'Host': 'www.lagou.com',
'Referer':'https://www.lagou.com/jobs/list_python%E5%BC%80%E5%8F%91?labelWords=&;fromSearch=true&suginput=',
',
'X-Anit-Forge-Token': 'None',
'X-Requested-With': 'XMLHttpRequest'
}
data = {
'first': 'true',
'pn': num,
'kd': 'Python开发'}
res = requests.post(url, headers=headers, data=data)
res.raise_for_status()
res.encoding = 'utf-8'
# 得到包含职位信息的字典
page = res.json()
return page
在搜索结果的第一页,我们可以从 JSON 里读取总职位数,按照每页 15 个职位,获得要爬取的页数。再使用循环按页爬取,将职位信息汇总,输出为 CSV格式。
序运行如下:

抓取结果如下:

数据可视化画图展示
1、根据薪资制作直方图
薪资比例描述和可视化出图


2、根据岗位地域分布制作饼图

3、制作词云
将职位福利这一列数据进行汇总,按照词语出现的频率生成云词实现 Python 可视化,以下是原图和云词图对比:

作者:Nick
某上市公司高级运维,业务运维负责人,主导运维自动化的开发与运维前沿技术的落地,曾就职中石油、魔秀科技,5年从业经验,经历了运维到运维开发的转变。
获取资料的方式如下:
Nick 分享<Python 分析拉钩职位>
时间:2018-11-15
21:00-22:00
PPT+ 视频
链接: https://pan.baidu.com/s/1tzG1adgpn23TSKvnR6XmYg 提取码: 2p2t
项目代码:https://github.com/nicksors/JobAnalysis
参与方式:扫码添加小助手备注:公开课,会拉入直播分享群分享结束后会把资料分享给大家
巧用 Python 找工作(资料在文末)的更多相关文章
- 金三银四科学找工作,用python大数据分析一线城市1000多份岗位招聘需求
文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 每年的三四月份是招聘高峰,也常被大家称为金三银四黄金招聘期,这时候上一 ...
- 让大蛇(Python)帮你找工作
前段时间用Python实现了一个网络爬虫(让大蛇(Python)帮你找工作),效率总体还可以,但是缺点就是每次都需要手动的去触发,于是打算对该爬虫加上Timer,经过网上一番搜索以及API的查询,发现 ...
- Python学到什么程度就可以去找工作?掌握这4点足够了!
大家在学习Python的时候,有人会问“Python要学到什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问 ...
- Python学到什么程度才可以去找工作?掌握这4点足够了!
大家在学习Python的时候,有人会问"Python要学到什么程度才能出去找工作",对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来 ...
- 安卓开发视频教程!想找工作的你还不看这份资料就晚了!Android校招面试指南
前言 准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事情,谈不拢的话,就年后直接找其他的公司.谁想到婚假还没休完,老板就在公司宣布了撤出上海的决定,愿意去深圳的就去,不愿 ...
- 安装了Anaconda之后,Maya运行报错,Python 找不到 Maya 的 Python 模块
以前Maya用的好好地,结果安装了Anaconda之后,maya启动以后,日志就会报错(如下),只能自主建模,不能打开以前创建的模型,也不能导入fbx,错误提示就是Maya找不到Python模块,在网 ...
- 巧用Excel提高工作效率
程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...
- [Job] 找工作小结
有近2个月没有更新博客,主要精力放在了投递会议论文和秋招找工作方面.这里简单总结一下秋招笔试面试的几点建议和感受. 投递的NLP算法工程师岗位,主要参加过面试的公司有腾讯(春招),蚂蚁金服(春招),追 ...
- Java+Python+前端 学习资料大全 百度云盘
Java架构师3大阶段 链接:https://pan.baidu.com/s/1DlXh33y5t4cZUmZH0cLvCw 提取码:5s76 2019前端架构阶段 链接:https://pan.ba ...
随机推荐
- Codewars, Leetcode, Hackerrank. Online Judges Reviews
http://jasonjl.me/blog/2015/03/30/practical-programming-practice-services/ Codewars, Leetcode, Hacke ...
- Linux 系统开机自启的配置文件
程序开机启动的配置文件(/etc/rc.local) # 系统级别 ntsysv # 图形界面设置自启程序 chkconfig(/etc/init.d/sshd) 处理开机启动的文件 # 用户级别 # ...
- 计算机中的换行符、回车符、\n、\r、\n\r 怎么区分啊?
'\r'是回车,前者使光标到行首,(carriage return)'\n'是换行,后者使光标下移一格,(line feed) \r 是回车,return\n 是换行,newline对于换行这个动作, ...
- spring4声明式事务--01注解方式
1.在spring配置文件中引入 tx 命名空间 xmlns:tx="http://www.springframework.org/schema/tx" 2.配置事务管理器 < ...
- Hadoop HBase概念学习系列之HBase里的HStore(十九)
Store在HBase里称为HStore.HStore包括MemStore和StoreFiles.
- 1星|《社群X平台》:没有实际工作经验的职业写手拼凑而成
社群X平台 赋能企业指数级增长 网站上介绍作者有一些身份.书中没提作者的职位,只介绍是“码字为生”.书的封底有一些名人言论的引用,咋一看以为都是推荐本书,细看只有最后李善友在推荐本书,其他人的话都是跟 ...
- ZT Android 4.2 BT系统之蓝牙关闭过程全跟踪
Android 4.2 BT系统之蓝牙关闭过程全跟踪 分类: android 2013-08-03 00:34 2252人阅读 评论(10) 收藏 举报 代码位置: frameworks/ ...
- 个人作业2——集大通APP案例分析
个人作业2——集大通APP案例分析 产品:集大通 我认为这个是我们学校的APP,我们应该支持一下. 一.个人体验 1.下载并使用,描述最简单直观的个人第一次上手体验. ①界面美观,可以感受到丰富的校园 ...
- 手写阻塞队列(Condition实现)
自己实现阻塞队列的话可以采用Object下的wait和notify方法,也可以使用Lock锁提供的Condition来实现,本文就是自己手撸的一个简单的阻塞队列,部分借鉴了JDK的源码.Ps:最近看面 ...
- 安装配置maven私服-nexus
1.ubuntu下的Bundle安装方式 1.1. 去官网下载安装包:http://www.sonatype.org/nexus/ 我这里下载的是:nexus-2.8.1-01-bundle.zip, ...