资料分享—— Python 分析拉钩职位

视频

PPT+ 视频

链接: https://pan.baidu.com/s/1tzG1adgpn23TSKvnR6XmYg 提取码: 2p2t

项目代码:https://github.com/nicksors/JobAnalysis

前言

近年来 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-Code‘: ‘0‘,
     ‘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 可视化,以下是原图和云词图对比:

Python 第20期入门班正在火热招生中

原文地址:http://blog.51cto.com/51reboot/2317989

时间: 2024-08-06 00:26:02

资料分享—— Python 分析拉钩职位的相关文章

分享python分析wave, pcm音频文件

最近研究的,我用的是python3.3, 用matplotlib画图, 下面代码演示分析pcm文件,如果是wave文件,把wave的文件头去掉就是pcm文件了. 代码如下 1 # -*- coding:utf-8 -*- 2 3 import array 4 import os 5 from matplotlib import pyplot 6 7 fileName = 'e:/music/qianqian.pcm' # 2 channel, 16 bit per sample 8 file =

21天打造分布式爬虫-Selenium爬取拉钩职位信息(六)

6.1.爬取第一页的职位信息 第一页职位信息 from selenium import webdriver from lxml import etree import re import time class LagouSpider(object): def __init__(self): self.driver = webdriver.Chrome() #python职位 self.url = 'https://www.lagou.com/jobs/list_python?labelWords

[资料分享]Python视频教程(基础篇、进阶篇、项目篇)

Python是一种开放源代码的脚本编程语言,这种脚本语言特别强调开发速度和代码的清晰程度.它可以用来开发各种程序,从简单的脚本任务到复杂的.面向对象的应用程序都有大显身手的地方.Python还被当作一种入门程序员最适合掌握的优秀语言,因为它免费.面向对象.扩展性强同时执行严格的编码标准. Python视频教程(基础篇) 下载地址: 链接:http://pan.baidu.com/s/1nuHvpX3 密码:78fs

python3爬虫-通过requests获取拉钩职位信息

import requests, json, time, tablib def send_ajax_request(data: dict): try: ajax_response = session.post(url=ajax_url, params={"needAddtionalResult": "false", "city": city}, data=data, headers=ajax_headers, timeout=timeout) i

爬取拉钩全站的职位信息

爬虫学习到今天也告一段落了,利用一个项目把自己这几个月的所学的知识来做一次总结 项目所需要的知识比较全面,很适合练手, 一 程序目的 爬取拉钩全站的职位信息存入mysql和mongodb中 二 所用到的方法 一 利用selenium登录拉钩取得cookies 二 利用redis保存selenium登录拉钩取得cookies信息,维护一个cookie池 三 爬取西刺等免费IP网站,并用redis维护一个IP池 四 利用flask把cookies和ip分别映射到网页中,用requsets得到. 五

超多慕课网实战教程破解自学教程百度云盘分享-Python/Java/前端后端/小程序/运维测试/人工智能

以下课程,需要的可以加我微*信:hgh813210,备注你需要的课程 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 前端成长必经之路 基于Storm构建实时热力分布项目实战 Spark Streaming实时流处理项目实战 以慕课网日志分析为例 进入大数据 Spark SQL 的世界 手工测试企业项目实践及面试提升 Webpack + React全栈工程架构项目实战精讲 深度学习之神经网络核心原理与算法 Android应用发展趋势必备武器 热修复与插件化

利用Python分析“女神大会”,分析码农最喜欢的top10女星!

前言 懂球帝上的"女神大会"专栏,作为一个大型"钢铁直男"聚集地,"懂球帝"上对各位女神的评分,对广大"钢铁直男"群体也具有一定代表性.这么好的地方,咱们必须得用Python分析一波了呀. 基本环境配置 版本:Python3 系统:Windows 相关模块:requests.bs4.pandas 用pip安装即可. 数据来源 目前女神大会更新至了第 90 期,总共出场了 90 位女神,界面如下:我们通过 fiddler 获取该

WebRTC源码入手和底层功能扩展资料分享

?? WebRTC源码入手和底层功能扩展资料分享 "webrtc源码分析群"里有同学说要在源码里加入新功能,想找下有没有相关资料可以分享下,好了解代码框架和入手修改代码,但是相关的资料少之又少,所以我找了相关的资料,希望能对大家有所帮助. WebRTC代码结构: http://blog.sina.com.cn/s/blog_40d608bb01010n73.htmlhttp://www.cnblogs.com/fangkm/p/4370492.htmlhttp://mojiapp.cn

资料分享(一)

IT编程宝园资料分享: 1.为什么花了很多时间还是没办法很好的学好编程? 本人也是学编程出身的,我很能体会这样的感觉,为什么我花很多时间都没办法很掌握一门编程,这对于一个编程自学者来说或者是经常遇到的问题,在我自己开始自学编程的初期,我也遇到这样的情况,不过后来还是挺过来了,但是,我不想很多人都和我一样走这样的弯路,后来通过不断学习我发现为什么后面学的其他语言会很很容易掌握一个很大的原因是我找到了一套系统学习的资料,这样的资料给我很大的帮助,所以让我很容易就掌握了新的语言,当然有编程语言基础也是