又到一年一度的离职躁动期,小组的同事差不多都大换血了。

作为组内的一名数据分析,在跳槽前,肯定得看看行情,我这样的数据er,到底能拿到多少薪水,所会的技能和工作经验,到底是否匹配大部分数据岗位呢?

想了想,还是压制住内心的煞气,爬爬拉勾网上数据分析职位的相关信息,看看自己几斤几两。

1.信息爬取,所需工具:拉勾网、Python。参考腾讯课堂《python拉勾网爬虫》

在经历了一次又一次的反爬虫之后,嗯,找到了正确的网址和header,开爬。

#导入需要的库
import requests  #请求网页
from bs4 import BeautifulSoup   #解析
import json
import time
import numpy as np
import pandas as pdheaders={'Cookie':'_ga=GA1.2.2046537735.1519346482; user_trace_token=20180223084123-462157d6-1832-11e8-8df7-525400f775ce; LGUID=20180223084123-46215dc1-1832-11e8-8df7-525400f775ce; LG_LOGIN_USER_ID=a74eb645299f49ec2b1f0f98d8f27071b23ad1b8c3e4a22f; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; index_location_city=%E4%B8%8A%E6%B5%B7; WEBTJ-ID=20180417084813-162d112cf2b4d9-0300e63ea642e6-4545092c-2073600-162d112cf2c306; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1523407416,1523407491,1523926094; _gid=GA1.2.1279679635.1523926094; LGSID=20180417084813-0203736a-41d9-11e8-b8a4-5254005c3644; PRE_UTM=m_cf_cpt_sogou_pc; PRE_HOST=www.sogou.com; PRE_SITE=https%3A%2F%2Fwww.sogou.com%2Fsogou%3Fquery%3D%25C0%25AD%25B9%25B4%26_asf%3Dwww.sogou.com%26_ast%3D1523926090%26w%3D01019900%26p%3D40040100%26pid%3Dsogou-site-c02d0450cdd75ce7%26sut%3D1050%26sst0%3D1523926089994%26lkt%3D0%252C0%252C0; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Flp%2Fhtml%2Fcommon.html%3Futm_source%3Dm_cf_cpt_sogou_pc; _putrc=6EA73BBBB51DEF7E; JSESSIONID=ABAAABAAADEAAFI11A5943D5AD8FA9FDAB240DFAD660213; login=true; unick=%E5%86%AF%E7%AB%B9%E5%90%9B; hasDeliver=134; gate_login_token=cc1c59fd3fc91706eb01534899470d38000e54a63b0db428; TG-TRACK-CODE=index_search; LGRID=20180417084823-0861f794-41d9-11e8-88dc-525400f775ce; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1523926106; SEARCH_ID=6be8a0349e5e4993a98387489af5cc6c','Host':'www.lagou.com','Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=','Origin':'https://www.lagou.com','X-Anit-Forge-Code':'0','X-Anit-Forge-Token':'None','X-Requested-With':'XMLHttpRequest','User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1'}     #模拟头部信息
positions=[]  #职位信息for x in range(1,31):   #爬取30页data={'first':'true','pn':x,'kd':'数据分析'}result=requests.post('https://www.lagou.com/jobs/positionAjax.json?city=%E4%B8%8A%E6%B5%B7&needAddtionalResult=false',headers=headers,data=data)  #请求网页json_result=result.json()page_position=json_result['content']['positionResult']['result']positions.extend(page_position)time.sleep(3)   #睡3秒钟

得到的数据,如下图:

数据是有规律的列表,可以直接转为dataframe:

positions=pd.DataFrame(positions)
positions.to_excel('拉勾网数据分析职位.xlsx',index=False)

存到Excel之后,查看数据:

嗯,是我想要的数据,接下来就踏上数据清洗之路吧!

2.数据清洗:所需工具,Python

columns=positions.columns   #看看爬取了哪些字段
#保留需要的字段:公司地址、公司简称等
new_cols=['businessZones','companyLabelList','companyShortName','companySize',\
'district','financeStage','industryField','latitude','longitude','linestaion',\
'positionLables','positionName','salary','secondType','workYear']
position_new=positions[new_cols]#处理工资  将工资范围处理成平均工资
position_new.loc[:,'lowSalary']=pd.DataFrame([x.split('-') for x in position_new['salary']],columns=['low','high'])['low']
position_new.loc[:,'highSalary']=pd.DataFrame([x.split('-') for x in position_new['salary']],columns=['low','high'])['high']
position_new.loc[:,'lowSalary']=[x.replace('k','000') for x in position_new['lowSalary']]  #小写的k
position_new.loc[:,'lowSalary']=[x.replace('K','000') for x in position_new['lowSalary']]   #大写的K
position_new.loc[:,'highSalary']=[x.replace('k','000') for x in position_new['highSalary']]
position_new.loc[:,'highSalary']=[x.replace('K','000') for x in position_new['highSalary']]
position_new.loc[:,'lowSalary']=position_new['lowSalary'].astype('int')  #转成int
position_new.loc[:,'highSalary']=position_new['highSalary'].astype('int')
position_new['aveSalary']=(position_new['highSalary']+position_new['lowSalary'])/2  #平均工资#工作地区  目标:徐汇、闵行
districts=position_new['district'].value_counts()#公司规模
company=position_new['companySize'].value_counts()#融资情况
finance=position_new['financeStage'].value_counts()#工作经验分布
work_year=position_new['workYear'].value_counts()  #看来是吃青春饭的?#工作经验和工资的关联   平均工资与工作年限
salary_year=position_new.groupby('workYear')['aveSalary'].agg(np.mean)   #哇哦

现在想要的信息基本上已经获得了,在Python中也查看了数据的大概情况。对于数据可视化,我还是比较喜欢Excel,方便好用,哈哈!

3.数据可视化:所需工具,Excel,BDP个人版

将之前得到的一些数据(工作地区、公司规模等存到Excel),用Excel制图进行可视化。

首先看看公司规模分布吧:

大部分招数据分析的公司规模比较大,毕竟数据分析也是建立在有数据的基础上,不是单纯的为了分析而分析,也得是为了支持业务、决策、运营,有价值的分析。

融资情况分布


差异好像不是很大,不过融资情况也一定程度上反应了公司的知名度。个人感觉知名度高点的公司,对后续跳槽可能会有一点帮助。

工作经验要求

1-5年的工作经验占比70%以上,看来是个吃青春饭的?从另一方面来说,数据分析也算是一个稍微要求点技术含量的工作,像Python、SQL属于简单的编程,分析是建立在业务之上,我个人觉得前几年还是需要在数据分析岗位锻炼锻炼,但是之后可以走向运营之类的岗位。

薪资与工作经验的关系:

昂,3年确实是个坎。5-10年的话。。。好吧,太长远了,鄙人还没想那么多。

地区分布
看看在魔都,数据分析职位都分布在哪些吧:

主要还是在浦东新区和徐汇区

利用BDP个人版,看看距离住址15公里范围内,有多少岗位(真的,15公里在上海来说,真的可以接受了,泪奔。。。)

目标职位分析
框选出136个岗位,然后再在这136个岗位中,再继续筛选:

公司规模>150人

融资情况>B轮

职位属性:全职

工作经验:2年

薪资>10K

这样一系列的筛选下来,符合期望的职位,就剩下39个了。那接下来这39个职位就是目标职位,再爬一下他们的职位要求及工作职责吧。

因为之前爬的数据里本身就包含了positionId,所以就根据这39个positionId,来继续爬取职位详情。

import requests  #请求网页
from bs4 import BeautifulSoup   #解析
import json
import time
import numpy as np
import pandas as pd
import os
os.chdir(r'd:\Python\PPD')positionId=pd.DataFrame(pd.read_excel('拉勾网数据分析职位.xlsx',sheetname='Sheet7'))
def crawl_detail(id):url='https://www.lagou.com/jobs/%s.html' %id     #看preview里,是否有目标信息headers={'Cookie':'_ga=GA1.2.2046537735.1519346482; user_trace_token=20180223084123-462157d6-1832-11e8-8df7-525400f775ce; LGUID=20180223084123-46215dc1-1832-11e8-8df7-525400f775ce; LG_LOGIN_USER_ID=a74eb645299f49ec2b1f0f98d8f27071b23ad1b8c3e4a22f; index_location_city=%E4%B8%8A%E6%B5%B7; _ga=GA1.3.2046537735.1519346482; _gid=GA1.2.985125351.1524014135; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1523407491,1523926094,1524014134,1524097843; LGSID=20180419083041-e40e638c-4368-11e8-b8a9-5254005c3644; PRE_UTM=m_cf_cpt_sogou_pc; PRE_HOST=www.sogou.com; PRE_SITE=https%3A%2F%2Fwww.sogou.com%2Fsogou%3Fquery%3D%25C0%25AD%25B9%25B4%26_asf%3Dwww.sogou.com%26_ast%3D1524097840%26w%3D01019900%26p%3D40040100%26pid%3Dsogou-site-c02d0450cdd75ce7%26sut%3D2484%26sst0%3D1524097840225%26lkt%3D0%252C0%252C0; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Flp%2Fhtml%2Fcommon.html%3Futm_source%3Dm_cf_cpt_sogou_pc; _putrc=6EA73BBBB51DEF7E; login=true; unick=%E5%86%AF%E7%AB%B9%E5%90%9B; gate_login_token=3091ead273e5f878fb8dd699cb0d13214e5ebbe92d1c767f; JSESSIONID=ABAAABAAAFDABFGAA6FCE7214B54BC961D1364923C06090; _gat=1; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1524098896; LGRID=20180419084814-57a6c379-436b-11e8-8ab6-525400f775ce','Host':'m.lagou.com','Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=','Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Mobile Safari/537.36'}result=requests.get(url,headers=headers)soup=BeautifulSoup(result.text,'html.parser')   job_des=soup.find('div',attrs={'class':'positiondesc'})   #找到职位描述所处的位置,返回一个列表job_des=job_des.find('div',attrs={'class':'content'})job=job_des.text   #job_des[0]是一个 bs4.element.Tagtime.sleep(10)   #睡10秒钟return job    #返回一个职位描述的字符串jobs=[]
for id in positionId['positionId']:job_desc=crawl_detail(id)jobs.append(job_desc)
jobs=pd.DataFrame(jobs,columns=['职位详情'])
jobs=pd.concat([positionId,jobs],axis=1)   #合并职位ID和职位详情
jobs.to_excel('职位详情.xlsx',index=False)


(之前爬过所有职位的详情,但是可能爬得太多,被拉勾反爬虫了,而我爬虫经验又不多,不知道怎么应对,所以就只能爬目标职位的详情,39个职位详情还是爬成功了。)

目标的职位详情已经有了,然后就是看看这些职责和所需技能,自己符不符合了。

写在最后
Excel是必备技能,如果连Excel都用不熟练,就不要再谈数据了。。。然后SQL、Python是加分项,SPSS也有公司要求会。但是这些都是硬技能,软实力主要还是分析能力,比如某个数据转化有问题,怎么去分析解决?是外部原因还是内部原因?造成的损失有多大?下次怎么去避免?

数据分析,个人觉得是在于分析。能够提升运营、收入、帮助决策的分析,才是有用的分析。而不是为了分析而分析。

BTW
还是希望大家在一个职位上能够好好沉淀,不要太浮躁,你以为没有东西可学,没有空间可进步,但是细细发现,你会知道自身的不足,还有这个职位的潜力。好好待在这个公司吧,认真做人,努力做事。

下期见!

Python爬取拉勾网数据分析职位相关推荐

  1. python爬取拉勾网给定关键词职位信息存入数据库_Python 爬取拉勾网python职位信息...

    今天的任务是爬取拉勾网的职位信息. 首先,我们进入拉勾网,然后在职位搜索栏搜索Python 的同时,打开控制面板F12,来查看网页构成. 在XHR里,可以清楚的看见Ajax请求,所以需要使用sessi ...

  2. Python爬取拉勾网职位数据

    哈喽大家好,我是宁一,今天我们来讲讲Python爬虫,用Python来爬取拉勾网的数据,拉勾网的反爬虫技术做的很厉害,通过普通的header请求总是返回请求频繁的信息 所以我们主要来用selenium ...

  3. python爬取拉勾网_python爬虫—爬取拉钩网

    本人自学python,小试牛刀,爬取广州片区拉钩网招聘信息.仅用于学习 参考文章:https://blog.csdn.net/SvJr6gGCzUJ96OyUo/article/details/805 ...

  4. python爬取拉勾网_(转)python爬取拉勾网信息

    学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫. 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候 ...

  5. Python爬取拉勾网招聘信息

    此代码运行建议Python3,省却中文编码的麻烦 遇到的几个问题: (1)拉钩网的数据是通过js的ajax动态生成,所以不能直接爬取,而是通过post'http://www.lagou.com/job ...

  6. 不知道天气咋样?一起用Python爬取天气数据分析告诉你

    前言 今天我们分享一个小案例,获取天气数据,进行可视化分析,带你直观了解天气情况! 一.核心功能设计 总体来说,我们需要先对中国天气网中的天气数据进行爬取,保存为csv文件,并将这些数据进行可视化分析 ...

  7. 这样的Python爬虫项目谁不爱呢——Python爬取高校就业职位

    大家好,这里是为代码封神的封神榜(有点吹牛皮了,哈哈).还是新人初来乍到,希望大家多多指教. 本系列呢,是为大家带来的是一些爬虫小项目,希望大家能够喜欢,多多支持. 1 爬取职位信息 确定爬取的思路 ...

  8. python爬取数据分析_使用Python爬取社交网络数据分析

    在线社交网站为人们提供了一个构建社会关系网络和互动的平台.每一个人和组织都可以通过社交网站互动.获取信息并发出自己的声音,因而吸引了众多的使用者.作为一个复杂的社会系统,在线社交网站真实地记录了社会网 ...

  9. 用Python爬取猫眼数据分析《无名之辈》

    最近几天,有部国产电影因好评及口碑传播而开始异军突起以黑马之势逆袭,在朋友圈以及微博上都会不时看到相关内容,那便是由陈建斌.任素汐等主演的<无名之辈>.这样一部没有什么特别大牌或流量明星, ...

  10. Python 爬取猫眼数据分析《无名之辈》为何能逆袭成黑马?

    本文首发在 CSDN 微信(ID:CSDNNews). 最近几天,有部国产电影因好评及口碑传播而开始异军突起以黑马之势逆袭,在朋友圈以及微博上都会不时看到相关内容,那便是由陈建斌.任素汐等主演的< ...

最新文章

  1. 【请求后台接口】30秒完成Angular10精简版HttpClient请求服务搭建
  2. 深入理解PHP原理之变量作用域
  3. 泼冷水:反思机器学习5年大跃进(附论文)
  4. 工程院院士李德毅:认知的三次革命,类脑的五条启发
  5. 函数模块:POPUP_TO_INFORM
  6. MySQL字段类型与Java数据类型的对应关系
  7. python request对四类参数的处理_如何处理Djang中同一参数具有多个变量的request.GET...
  8. 为什么有些softmax公式需要减去输入中的最大值
  9. oracle 数据导入 mysql_oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)...
  10. 面试官:分布式环境下,如何实现session共享
  11. Android Monkey Test
  12. java home websphere_websphere6.1安装与配置
  13. 基于PHP+MySQL的美容会所企业资产管理系统
  14. Android RecyclerView设置paddingBottom,scrollbars跟随滑动到底部
  15. 响应式布局的实现方法
  16. mysql查询1971年以前_mysql 初篇
  17. Floyd算法求最短路径(附代码实例)
  18. 推荐几款渗透测试常用的脚本(记得收藏)
  19. Vector space
  20. 用r求f分布的临界值

热门文章

  1. 如何定制支持用户自定义boot参数的基于debian os的live cd
  2. js html显示emoji表情,js emoji表情长度判断
  3. Jointly Extracting Multiple Triplets with Multilayer Translation Constraints [论文研读]
  4. macOS连接ftp服务器
  5. pandox怎么用_神器Pandoc的安装与使用 | Flyaway's Blog
  6. python从入门到实践 练习题雨滴下落--我的下落时全都连在一起了---已解决
  7. 德兰梅尔-诚邀您参加2022生物发酵展(济南),7月14日与您相约
  8. php最小二乘法,Python中实现最小二乘法思路及实现代码
  9. MLP is Maybe Your Need
  10. js 多线程Worker