如何利用Python爬虫,获取招聘网站岗位数据

虽说年后的招聘高峰期已到尾声,但是我们还是可以通过Boss直聘、拉勾等网站获取更多的招聘信息加以分析。

前两天看到一篇文章说今年招聘销售最吃香。那我们就以北京的【销售岗位分析】作为我们本次文章的干货的分享。

本次的干货整体的思路是:

  1. 使用Python爬虫获取更多的职位信息
  2. 进行数据展示和清洗
  3. 可视化展示

第一部分爬取职位信息

我们本次获取的是Boss直聘的信息,我们打开Boss直聘搜索🔍【销售】,但是很遗憾boss直聘的反爬措施不能直接使用requests库获取信息,所以采用webdriver自动化方式获取网页源代码。

webdriver的使用需要大家:

  1. pip3 install selenium

  2. 配置chrome浏览器的chrome driver。

    a. 查看当前chrome浏览器的版本,在浏览器的地址栏输入:chrome://version

    b. 去这个网址下载对应版本的driver:http://npm.taobao.org/mirrors/chromedriver/

    c. 将下载的chromedriver放到

    Win:复制webdriver到Python安装目录下 Mac:复制webdriver到/usr/local/bin目录下

这是webdriver就可以使用啦!下面开始在浏览器查询【销售】,查询后的页面如下:

在这里插入图片描述

点击了多页之后,发现地址栏的地址变化如下:

https://www.zhipin.com/c101010100/?query=销售&page=1&ka=page-1

https://www.zhipin.com/c101010100/?query=销售&page=2&ka=page-2

https://www.zhipin.com/c101010100/?query=销售&page=3&ka=page-3

所以我们就发现了地址的规律变化,因此代码如下:

import re,matplotlib,time,random   #导入正则表达式,绘图,时间,随机模块
from bs4 import BeautifulSoup    #BeautifulSoup用于处理获取的网页数据
import pandas as pd   #数据分析必备类库
import seaborn as sns   #绘图模块
from selenium import webdriver   #自动化控制浏览器模块

job="销售"      #设置需要爬取的职业信息
page=6         #设置爬取页数
htmls_list =[] #建立网页信息存储列表
for num in range(1,page,1):
    url = "https://www.zhipin.com/c101010100/?query={}&page={}&ka=page-{}".format(job,num,num)
    driver=webdriver.Chrome()   #初始化webdriver
    driver.get(url)  #自动化运行页面
    time.sleep(8)  # 爬取的时候网速比较慢,所以打开的时候加了一个延时,保证能获取到数据
    htmls=driver.page_source #获取页面信息
    htmls_list.append(str(htmls)) #将获取页面信息添加至网页存储列表
    driver.close() #关闭浏览器 
    ran_time = random.randint(10,20) #随机生成停顿时间
    time.sleep(ran_time) #程序休眠  
print(htmls_list)

此时执行代码,发现htmls_list中有好多的数据。

这下也就放心了,说明我们获取到了网页的数据。

有了数据我们就开始遍历htmls_list,因为htmls_list存放着多页的数据,我们要一页一页的获取并提取里面的职位、薪资等信息。

提取的过程我们使用的是BeautifulSoup,具体的使用说明这里不在赘述,大家可以查看文档。https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/

使用BeautifulSoup提取的数据我们都存放在job_list=[]这个列表中。页面分析如下:

在这里插入图片描述

岗位名称

以此类推,我们都可以找到对应的标签。这里就不再逐个截图给大家展示

通过chrome的开发者工具帮助我们分析,我们可以得到如下的代码:

job_list=[]   #建立获取职位信息存储列表
for htmls in htmls_list:
    soup= BeautifulSoup(htmls) #解析网页    
for i in soup.find_all("div", class_="job-primary"):
        job = i.find_all("a")  #获取招聘岗位信息
        area = i.find_all('span', class_='job-area') #获取工作地点 
        salary = i.find_all('span', class_='red') #获取薪酬信息
        title = i.find_all("h3")[1].get_text() #获取企业名称
        industry = i.find_all('a',class_="false-link")[0].get_text() #获取所属行业
        edu = i.find_all('p')[0].text  #获取学历要求
        scale = i.find_all('p')[1].text #获取条件信息
        url = "https://www.zhipin.com/" + i.find_all("div", class_="primary-box")[0]['href'] #获取详情页信息
        job_list.append([title, industry, job[0]['title'],area[0].get_text(),edu,scale, salary[0].get_text(),url])#将所有信息保存至列

到此我们就完成了所有爬虫部分的内容,其中比较关键的知识点就是通过Beautifulsop模块解析到所需内容。

第二部分数据清洗

这样我们就将所有的信息保存到了job_list中,下面我们就开始数据分析和展示了,使用Pandas加载数据

data = pd.DataFrame(job_list,columns=['企业名称', '所属行业', '招聘岗位', '工作地点', '条件', '企业信息', '薪资','URL'])

看一下加载出来的数据:

在这里插入图片描述

在数据可视化前我们要对数据进行简单的处理,比如去重、整理薪资的数据类型为数值型。

去重我们使用drop_duplicates对企业名称进行去重,使用正则和lambda进行数值类型转换。

data =data.drop_duplicates(subset='企业名称',keep='first') 
#将数据按照招聘企业去重处理 
data['max_salary'] = data['薪资'].map(lambda x:re.findall("-(\d.*?)K", x)[0])
data['max_salary'] = data['max_salary'].astype(int) *1000
#通过正则表达式获取薪资的最大值,并整理为数值型

data['min_salary'] = data['薪资'].map(lambda x:re.findall("(\d.*?)-", x)[0])
data['min_salary'] = data['min_salary'].astype(int) *1000
#通过正则表达式获取薪资的最小值,并整理为数值型

data.head()

查看数据发现多出来了两列的内容就是:薪资的最大值和最小值
在这里插入图片描述

按照所属的行业进行分组查看,分别获取各个行业的最高薪资的平均值和最低薪资的平均值

df1 = data.groupby("所属行业")['max_salary'].mean().round(2).reset_index().rename(columns={"max_salary":"salary"})
df2 = data.groupby("所属行业")['min_salary'].mean().round(2).reset_index().rename(columns={"min_salary":"salary"})

最高薪资部分数据:
在这里插入图片描述

最低薪资部分数据:

在这里插入图片描述

现在我们要把最高和最低整合到一张表中,我们就使用到了concat表的连接。

# 分别对df1和df2添加标签label
df1['label'] = 'max_salary'
df2['label'] = 'min_salary'
df = pd.concat((df1,df2))

查看结果如下:

在这里插入图片描述

第三部分数据可视化

接下来进行可视化显示

from matplotlib import pyplot  as  plt
# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'
# 设置大小
plt.figure(figsize=(15,6))
sns.barplot(x='所属行业',y='salary',hue='label',data=df, palette="Set2")

可视化后的结果是:

在这里插入图片描述

当然大家也可以获取多个城市的职位信息,按照城市分组查看。

如何获取多个城市的信息呢?查看链接发现链接:https://www.zhipin.com/c101010100/?query=销售&page=1&ka=page-1

中【c101010100】为城市代码,城市代码也可以通过https://www.zhipin.com/wapi/zpgeek/common/data/citysites.json获取所有城市的代码。需要大家通过requests获取后进行json解析就可以获取,结构很简单。

在这里插入图片描述

OK!剩下交给各位了!赶快试试看吧!

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

  • 30
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Python爬虫实现智联招聘岗位信息分析是一种利用技术手段来收集、整理和分析智联招聘网站上的岗位信息的方法。下面我将从爬虫实现、数据收集和分析等方面进行说明。 首先,我们可以使用Python编写爬虫程序来访问智联招聘网站并抓取数据。通过分析网站的网页结构和请求方式,我们可以使用Python的requests库或者第三方库Scrapy来发送HTTP请求,获取网页内容。然后,使用正则表达式或者BeautifulSoup库等工具对网页内容进行解析,提取出岗位信息。 其次,收集到的岗位信息可以进行多维度的数据处理和分析。我们可以提取出职位名称、公司名称、薪资范围、工作地点、经验要求、学历要求等信息,并进行统计和可视化。例如,我们可以使用Python的pandas库对数据进行清洗、筛选和聚合,得到关于不同职位的数量、平均薪资等统计信息。同时,可以使用Python的matplotlib或者seaborn库对数据进行可视化,以便更直观地呈现分析结果。 最后,基于爬取到的数据,我们还可以进行更深入的分析。例如,可以通过建立职位与薪资、学历与薪资之间的关系模型,预测某个职位对应的薪资范围。此外,还可以进行职位需求的文本分析,了解招聘需求中的关键词和技能要求,并根据分析结果提高个人的职业竞争力。 总之,基于Python爬虫实现智联招聘岗位信息分析,可以帮助我们更加全面地了解就业市场状况,为职业发展提供数据支持。同时,通过数据清洗、分析和建模等方法,可以揭示出隐藏在招聘信息背后的规律与趋势,为个人的职业发展和招聘决策提供指导。 ### 回答2: 基于Python爬虫智联招聘岗位信息分析是一种利用Python编程语言和爬虫技术从智联招聘网站获取岗位信息,并通过数据分析和可视化来提取有用的信息和洞察。 首先,我们可以通过Python编写爬虫程序,使用网络爬虫技术来自动获取智联招聘网站上的岗位信息。通过发送HTTP请求、解析HTML页面、提取关键信息等操作,我们可以抓取到岗位的详细信息,如职位名称、薪资待遇、工作地点、要求经验等。 其次,我们可以对抓取到的数据进行清洗和整理,去除重复数据、处理缺失值等。对于一些非结构化的数据,我们可以使用Python的文本处理库进行分词、词性标注、关键词提取等操作,以便后续的数据分析。 然后,我们可以对岗位信息进行统计和分析。例如,我们可以通过Python数据分析库对招聘职位的薪资分布、学历要求、工作经验要求等进行可视化展示,从而了解到不同岗位的市场需求和竞争情况。同时,我们也可以根据抓取到的关键词信息,对职位描述进行文本挖掘,了解不同职位的特点和技能要求。 最后,我们可以根据分析结果进行数据驱动的决策。通过对各种岗位信息的分析,我们可以了解到当前市场的需求状况,为求职者提供相关的就业指导和职业规划建议;同时,也可以为企业提供人才招聘岗位需求预测等支持。 综上所述,基于Python爬虫智联招聘岗位信息分析是一种利用编程和数据分析技术来提取有用的招聘信息并进行统计和分析的方法,可以为个人求职者和企业提供更深入的洞察和决策支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值