首页 文章详情

找工作必看,用Python爬取数据分析岗位信息并可视化分析

大邓和他的Python | 1034 2021-06-08 14:06 0 0 0
UniSMS (合一短信)

导读: 最近经常收到人事小姐姐和猎头小哥哥的面试邀请,想想最近也不是招聘旺季呀。但又想到许多小伙伴们有找工作这方面的需求,今天就来分享一篇简单的爬虫案例,旨在跟大家一起分析一下部分招聘市场。以"数据分析"为例。


2021暑期 | 结构模型、Stata实证前沿、Python数据挖掘暑假工作坊




Tips: 本次爬虫案例分析结果仅供学习参考,不做就业指导,根据自己实际需求自行分析决策。

需要用到的模块

import requests
import time
import random
import os
import requests
from bs4 import BeautifulSoup
import openpyxl
import numpy as np

爬虫代码

本次爬虫难度不大,属于入门级别的,只要懂得requests请求,BeautifulSoup解析即可轻松上手,下面是本次爬虫的主要代码。

def getPosition(url):
    times=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    print(u'\n本地时间:',times)
    print(u'\n开始采集数据...')
    # 请求获取返回值
    data = getData(url)
    # BeautifulSoup解析网页
    soup = BeautifulSoup(data.text, features='lxml')  # 对html进行解析,完成初始化
    results = soup.find_all(attrs={'class'"job-list"})
    job_list =  results[0].find_all(attrs={'class'"job-primary"})
    lens = len(job_list)
    for num in range(lens):
        positions = []
        job = job_list[num]
        # 根据节点查询相应数据
        positions.extend(job.find_all(attrs={'class'"job-title"})[0].text.split())
        positions.append(job.find_all(attrs={'class'"job-limit"})[0].text.split()[0])
        job_limit = job.find_all(attrs={'class'"job-limit"})[0]
        positions.extend(str(job_limit.p).rstrip('</p>').lstrip('<p>').split('<em class="vline"></em>'))
        positions.append(job.find_all(attrs={'class'"company-text"})[0].text.split()[0])
        company = job.find_all(attrs={'class'"company-text"})[0].p
        positions.extend(company.a.text.split())
        positions.extend(str(company).rstrip('</p>').split('<em class="vline"></em>')[1:])
        positions.extend(job.find_all(attrs={'class'"info-desc"})[0].text.split())
        positions.append(','.join(job.find_all(attrs={'class'"tags"})[0].text.split()))
        write_to_excel(positions)

数据结果

获取到数据之后,需要对原始数据进行一些简单的清洗工作。清洗前需要先思考下你需要获取哪些信息,有针对性的清洗。


一探究竟

本次可视化分析工具是 Pyecharts

从技能标签找学习方向

将所有公司的技能标签统计后,绘制前十的技能需求直方图。从图中很明显地看到遥遥领先的分别是Python、SQL,数据分析思维及能力及Excel也紧跟其后。像小编做的数据挖掘技能需求量也不小。

似乎在数据分析职位中,PythonerSQL boy都是非常抢手的。

哪些城市的数分岗位更热门

由全国地理图可看的出,北上广深加苏州、厦门、杭州等都是很热门的城市,你会选择哪个城市?

全国都有哪些公司招聘数分职位

以公司名称的大小来表示各个公司招聘职位数,绘制招聘公司词云图。很明显地看的出如腾讯、阿里、OPPO、Boss等大厂需求量较大,因此机会也多。所以大家学好数据分析,进入大厂不是梦。

谈钱不伤感情

大家最关心的还是一个职位能给到我多少钱,比较还要养家糊口。

从全国各城市平均薪资排行榜看,遥遥领先的是北京、深圳、上海和杭州,分别是23K、19.7K、18.6K和18.5K。而小编所在的城市——成都,只有9K。文章不想写了,我想静静。。。

看完各城市平均薪资,再来瞧瞧各个行业的平均薪资吧。人力资源服务银行这两个行业均超过了20K

首先随机查看一个人力资源服务的,这类职位多为商业数据分析,该职位的特点是高学历是硬性,但对于工具使用要求不高,只需熟练使用EXCEL即可,需要些管理经验。

再看看银行行业,薪资水平真香!虽然没有说学历要求,但可能是一个默认的情况吧。职位描述中多次提及到业务数据,说明他对业务要求较高。需要会SQL语句,需要会搭建数据分析模型,这类模型不一定是机器学习模型,也会有很多统计类、数学类模型等等。

为啥北京公司的工资高

单独分析下北京的数据分析公司情况,公司规模在1000-9999人占比第一,达到37.2%,10000人以上的公司也高达22.87%,都是些大厂,工资水平能不高么。

有人说,公司人多,不一定有钱呐。好嘛,再来看看他们公司的融资阶段情况呢。D轮及以上上市的公司已经接近一半了,多半都是有钱的主哇。

成都数据分析公司啥情况

占比最多的是20-99人的小型公司,规模在1000-9999人的公司仅有34家,跟首都简直不能比。所以成都平均公司水平不过万,也是有原因的。

再来看看公司融资情况,大部分都是未融资的,上市公司仅占12.75%,D轮及以上的也只有5.39%呐。但从另一个角度想想,成都的发展潜力还是很大的。作为西南的重要枢纽城市,相信他会越来越棒的。

你还有啥想了解的——福利呐

最后再来看看大家比较关心的公司福利状况。

通过绘制福利词云图,看到大部分公司的常见福利都还是有的。意外的是少部分公司有提供不一样的福利,如无息住房借款、专属健身房、孝顺金等,真让人羡慕哇。

写在最后

最后多说两句。我们上面分析的内容仅是从一些常见的指标,并不能作为你入职一家公司的主要判断依据。个人觉得还需要从一家公司的企业文化、公司发展方向、提供职位的发展空间、所处行业跟你预期是否符合等等方面综合衡量。

打铁还需自身硬,选择都是双向的,你想入职一个理想的公司,首先还是需要达到他的岗位要求。

精选文章

系列视频|Python网络爬虫与文本数据分析
语法最简单的微博通用爬虫weibo_crawler
hiResearch 定义自己的科研首页
大邓github汇总, 觉得有用记得star
multistop ~ 多语言停用词库
Jaal 库 轻松绘制动态社交网络关系图
addressparser中文地址提取工具
来自kaggle最佳数据分析实践
B站视频 | Python自动化办公
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
bsite库 | 采集B站视频信息、评论数据
texthero包 | 支持dataframe的文本分析包
爬虫实战 | 采集&可视化知乎问题的回答
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  

    分享”和“在看”是更好的支持

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter