爬取拉勾网关于任何一个职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示。

一、数据准备

随便搜索一个岗位,例如BI工程师,然后右键点击F12使用检查功能查看网页源代码,当我们点击下一页观察浏览器的搜索栏的url并没有改变,这是因为拉勾网做了反爬虫机制, 职位信息并不在源代码里,而是保存在JSON的文件里,因此我们直接下载JSON,并使用字典方法直接读取数据。即可拿到我们想要的职位相关的信息。

待爬取的BI工程师职位信息如下:

为了能爬到我们想要的数据,我们要用程序来模拟浏览器来查看网页,所以我们在爬取的过程中会加上头信息,头信息也是我们通过分析网页获取到的,通过网页分析我们知道该请求的头信息,以及请求的信息和请求的方式是POST请求,这样我们就可以该url请求拿到我们想的数据做进一步处理.爬取网页信息代码如下:

import requests

import csv,time

url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'

def get_cookie():

cookie = requests.get('https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',headers={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'

},allow_redirects=False).cookies

return cookie

def put_into(page,kd):

headers = {

'Host': 'www.lagou.com',

'Origin': 'https://www.lagou.com',

'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'

}

json = {

'first': 'true',

'pn': str(page),

'kd': str(kd)

}

response = requests.post(url=url, headers=headers, data=json, cookies=get_cookie())

response.encoding = response.apparent_encoding

html = response.json()['content']['positionResult']['result']

savedata(html,kd)

def savedata(html,kd):

f = open(kd + '.csv', mode="a+",newline='',encoding='utf-8-sig')

csv_write = csv.writer(f)

csv_write.writerow(['职位名称', '公司名称', '公司规模', '城市', '薪资待遇', '工作经验', '是否全职', '学历要求', '公司福利', '发布时间'])

for i in range(len(html)):

positionName = html[i]['positionName'] # 职位名称

companyFullName = html[i]['companyFullName'] # 公司名称

companySize = html[i]['companySize'] # 公司规模

salary = html[i]['salary'] # 薪资待遇

city = html[i]['city']

workYear = html[i]['workYear'] # 工作经验

jobNature = html[i]['jobNature'] # 是否全职

education = html[i]['education'] # 学历要求

positionAdvantage = html[i]['positionAdvantage'] # 公司福利

lastLogin = html[i]['lastLogin'] # 发布时间

# print(positionName,companyFullName,companySize,salary,city,workYear,jobNature,education,positionAdvantage,lastLogin)

csv_write.writerow([positionName, companyFullName, companySize, city, salary, workYear, jobNature, education, positionAdvantage,lastLogin])

f.close()

if __name__ == '__main__':

kd = str(input('请输入您想爬取的职业方向的关键词:'))

for page in range(2,31):

put_into(page,kd)

print('第'+str(page-1)+'页爬取成功!')

time.sleep(2)

输入你想要查取的岗位:

二、数据清洗

1、城市

拿到csv文件是只有公司名,没有城市名的,于是用了excel函数lookup做了一个匹配:

在D1-D20中输入常用的城市名

公式:在B1单元格中输入下列公式:=LOOKUP(32767,FIND(D$1:D$20,A1),D$1:D$20)。

2、薪水

将CSV文件数据导入FineBI中(新建数据链接,建立一个分析业务包,然后导入这张excel表)。因为薪水是以xxK-xxk(还有一些类似校招/薪资面议的数据)的形式进行存储的,我这边使用FineBI新增公式列(类似excel函数)将这些字符进行分割:

薪水下限(数值): indexofarray ( split (salary,"k-") ,1)

薪水上限(含K字符):indexofarray( split(salary,"k-") ,2)

薪水上限(数值):left( 薪水上限(文本),len(薪水上限(文本))-1 )

求一下平均薪水

3.脏数据清洗:

浏览了一下数据,没有大问题,如果有一些BIM之类的过滤掉即可,不得不说拉勾的搜索还是很精准的。

三、数据可视化

数据可视化可以说是很简单了,拖拽要分析的数据字段即可。

但是这里用finebi分析要理解一个思路。常规我们用excel做分析或者说做图表,是先选用钻则图表然后设定系列、数值。这里没有系列和数值的概念,只有横轴和竖轴。拖入什么字段,该字段就以该轴进行扩展,至于图表嘛,finebi会自动判别推荐。最后展示:

四、分析结果

1、目前BI工程师岗位在拉勾招聘网站的平均薪资为20.61K,主要薪水区间大概在15-20K和大于25K,而这个薪资对应的年限大致在3年以上,本科学历。相关工作需求总数为301个(仅仅为某一天的招聘需求数据)。

2、从城市岗位需求数量分布来看,BI工程师需求主要集中在北京、上海、深圳、广州区域;各城市BI工程师平均薪水方面,去除岗位需求量较少的城市来看,国内排在前面的分别为北(24.57K)、上海(19.81)、杭州(18.75K)、深圳(18.60K)、广州(16.94K)。

3、从工作年限的平均薪水和岗位需求数量来看,工作5-10年的资深BI工程师的平均薪水可以达到27K以上(朝资深BI工程师方向奋斗!!!1年以下年限的计算出来的平均薪水虽然为22.17K,但是由于样本量只有3个,所以参考意义不大),也间接证明了一年内跳槽不好意思市场上没有你的岗位,工作需求最多的为3-5年的,平均薪水为21.24K。

4、从学历方面来看,最低学历需求主要以本科/大专为主,本科和大专学历要求的平均薪资分别为21.86和14.34K(感觉差距还是很大的,有机会提升学历一定不要放过),硕士学历需求很少。

5、看了一些高薪的招聘企业,最高的可以给到40K~60K的薪酬水平,其中主要是互联网、IT类公司为主。

恍然大悟,清晰明了~知识就是财富,撸起袖子加油干吧!

python外国网站爬虫_10分钟教你用python爬取网站信息:这可能是全网最好用的爬虫代码...相关推荐

  1. python写动态壁纸_10分钟教你用python更换电脑壁纸

    注:本文转载自公众号:木白瞎说 大家好,非常抱歉因为作者懒癌晚期好久没更新(也实在是没写什么值得分享的东西),今天就来诈尸一下(●'◡'●) 今天也没有表情包当引子了,因为做图真的好麻烦啊orz(你说 ...

  2. python发朋友圈_10分钟教你用Python发一个高逼格的朋友圈

    程序猿声 你与千万程序猿在一起 01 前言 Hello~各位小伙伴们大家好.现在大家是越来越离不开手机,离不开微信了.每天打开手机的第一或者第二件事就是赶紧打开朋友圈看看有什么好玩的东西.偶尔忍不住了 ...

  3. python实现离线翻译_10分钟教你用Python实现微信翻译机器人

    相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...

  4. python飞机游戏视频教程_10分钟教你用Python做个打飞机小游戏超详细教程

    01 前言 这次还是用python的pygame库来做的游戏.关于这个库的内容,读者可以上网了解一下.本文只讲解用到的知识.代码参考自网上,自己也做了一点代码简化.尽量把最核心的方面用最简单的方式呈现 ...

  5. python实现淘宝自动回复_10分钟教你用Python实现微信自动回复功能

    01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...

  6. python 图片文件_初学Python-只需4步,爬取网站图片(附py文件)

    很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来. 我:行,那我们卖什么呀? 领导 ...

  7. python后端和爬虫_10分钟教你Python爬虫(上)-- HTML和爬虫基础

    本文来源于公众号[程序猿声],作者向柯玮 前言 小玮又来啦.这次给大家带来的是爬虫系列的第一课---HTML和爬虫基础. 在最开始的时候,我们需要先了解一下什么是爬虫.简单地来说呢,爬虫就是一个可以自 ...

  8. 通过html直接显示txt内容_10分钟教你用Python爬取Baidu文库全格式内容

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:向柯玮,周航 程序猿声 PS:如有需要Python学习资料的小伙伴可 ...

  9. python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息

    前言 Python确实是个好东西,可以用来解决很多数据上的烦恼.结合现在各个平台提供的API,可以用Python做很多有用的需求哦~ 需求分析 之前写论文的时候,就有这个需求了.就是抓取百度地图上某些 ...

  10. python修改桌面壁纸_3分钟教你用python把你的桌面壁纸变得酷起来

    一 .前言 最近在windows商店看到一个很好玩的应用,他能每天自动爬取bing搜索的图片设置为你的桌面壁纸,每天都能自动下载bing图片设置为桌面壁纸,可惜只有付费才能自动更换壁纸.下面让我们一起 ...

最新文章

  1. 卡耐基梅隆大学计算机金融专业,卡耐基梅隆大学计算机金融硕士申请要求及专业优势...
  2. Flask框架 之abort、自定义错误、视图函数返回值与jsonify
  3. operamasks-ui2.0 +MVC4.0+EF5.0实战之一 开篇及布局控件介绍
  4. Mina、Netty、Twisted一起学(五):整合protobuf
  5. 鸿蒙行车记录仪,百度导航新增行车记录仪功能 可消除碰瓷风险
  6. 搭建内网yum服务器
  7. spark学习-SparkSQL--07-SparkContext类和SparkConf类
  8. android edittext不可复制_Android 禁止输入框 EditText 复制粘贴
  9. 听听各位对Ubuntu的UI的看法
  10. python tkinter画动态时钟
  11. 计算机实验报告protel,PROTEL_99SE实验报告
  12. 看电影“刺客聂隐娘”前必须了解的知识(绝无剧透)
  13. 用在线RaxML构建系统发育树
  14. 目前常见软件保护技术概述
  15. 阿卡迪亚大学计算机专业好考吗,阿卡迪亚大学很烂吗
  16. 详解如果用爬虫程序批量采集淘宝好评数据
  17. Python并发编程系列之多线程
  18. 你绝对没见过的船新版本,利用Python代码制作过年春联。
  19. 一文带你搞懂vue中的this.$nextTick
  20. ZZULIOJ 1800: 少水群多刷题

热门文章

  1. Java QQ授权第三方登陆
  2. java中object类对象转换成int对象的两种方法
  3. kux格式 linux,怎么把1080P的kux视频转换成mp4呢
  4. 微信小程序 学科竞赛比赛报名管理系统 Android hbuilderx App毕业设计
  5. COMSOL吸附模拟
  6. 必读的20本投资经典
  7. matlab 实时信号平滑,信号平滑处理 - MATLAB Simulink Example - MathWorks 中国
  8. 2021年网络工程师中级考点笔记
  9. 各种单点登录方案调研
  10. 为什么你写了一万小时的代码,却没能成为架构师?| 程序员有话说