15分钟,教你用Python爬网站数据,并用BI可视化分析!

作为一名在数据行业打拼了两年多的数据分析师,虽然目前收入还算ok,但每每想起房价,男儿三十还未立,内心就不免彷徨不已~

两年时间里曾经换过一份工作,一直都是从事大数据相关的行业。目前是一家企业的BI工程师,主要工作就是给业务部门出报表和业务分析报告。

回想自己过去的工作成绩也还算是不错的,多次通过自己分析告,解决了业务的疑难杂症,领导们各种离不开。

但安逸久了总会有点莫名的慌张,所以我所在的这个岗位未来会有多大发展空间,十年之后我能成为什么样的人呢?自己的收入空间还有多少?

一番惆怅之后,别再问路在何方了,于是抄起自己的“家伙”,花了一小会时间爬了智联招聘上BI岗位的数据信息,做了个分析。

PS:所用工具为Python+BI

数据分析的过程如同烧一顿饭,先要数据采集(买菜),然后数据建模(配菜)、数据清洗(洗菜)、数据分析(做菜)、数据可视化(摆盘上菜)。

所以第一步,要采集/选择数据。

一、Python爬取智联招聘岗位信息(附源码)

选择智联招聘,通过Python来进行“BI工程师”的关键数据信息的爬取,这里大家也可以试着爬取自己岗位的关键词,如“数据分析师”、“java开发工程师 ”等。经过F12分析调试,数据是以JSON的形式存储的,可以通过智联招聘提供的接口调用返回。

本人对于Python学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习Python。欢迎各位到来Python学习群:923414804一起讨论视频分享学习。Python是未来的发展方向,正在挑战我们的分析能力及对世界的认知方式,因此,我们与时俱进,迎接变化,并不断的成长,掌握Python核心技术,才是掌握真正的价值所在。

那么我这边通过Python对智联招聘网站的数据进行解析,爬取了30页数据,并且将岗位名称、公司名称、薪水、所在城市、所属行业、学历要求、工作年限这些关键信息用CSV文件保存下来。

附上完整Python源码:

import requests

import json

import csv

from urllib.parse import urlencode

import time

def saveHtml(file_name,file_content): #保存conten对象为html文件

with open(file_name.replace('/','_')+'.html','wb') as f:

f.write(file_content)

def GetData(url,writer):#解析并将数据保存为CSV文件

response= requests.get(url)

data=response.content

saveHtml('zlzp',data) #保存html文件

jsondata=json.loads(data)

dataList=jsondata['data']['results']

#print(jsondata)

for dic in dataList:

jobName=dic['jobName'] #岗位名称

company=dic['company']['name'] #公司名称

salary=dic['salary'] #薪水

city=dic['city']['display'] #城市

jobtype = dic['jobType']['display'] #所属行业

eduLevel=dic['eduLevel']['name'] #学历要求

workingExp=dic['workingExp']['name'] #工作经验

print(jobName,company,salary,city,jobtype,eduLevel,workingExp)

writer.writerow([jobName,company,salary,city,jobtype,eduLevel,workingExp])

param={ 'start':0,

'pageSize':60,

'cityId':489,

'workExperience':-1,

'education':-1,

'companyType': -1,

'employmentType': -1,

'jobWelfareTag': -1,

'kw': 'BI工程师', #搜索关键词,可以根据你需要爬取的岗位信息进行更换

'kt': 3,

'lastUrlQuery': {"p":1,"pageSize":"60","jl":"681","kw":"python","kt":"3"}

}#参数配置

pages=range(1,31)#爬取1-30页数据

out_f = open('test.csv', 'w', newline='')

writer = csv.writer(out_f)

writer.writerow(['jobName','company','salary','city','jobtype','eduLevel','workingExp'])

for p in pages: #自动翻页

param['start']=(p-1)*60

param['lastUrlQuery']['p']=p

url = 'https://fe-api.zhaopin.com/c/i/sou?' + urlencode(param)

GetData(url,writer)

time.sleep(3)#间隔休眠3秒,防止IP被封

print(p)

out_f.close()

经过一番编译调试,代码成功运行。

全部数据爬取完毕,一共1800条,保存在本地CSV文件中。

数据是爬到了,具体我想了解哪些信息呢:各城市的BI岗位需求情况以及薪资水平;薪水随工作经验的涨幅情况,以及有哪些具体的高薪岗。

由此可见,想要分析的角度很多,且看了源数据,还要做不少的数据处理。最简单快速出可视化的方法自然是用BI工具,来对数据做简单清洗加工,并呈现可视化。

BI能应付绝大多数场景的数据分析,尤其擅长多维数据切片,不需要建模;甚至数据清洗环节也能放在前端,通过过滤筛选、新建计算公式等来解决。最后呈现可视化,并可设计数据报告。

这里我用FineBI来做这样一份分析。

FineBI做分析大体是这样的流程:连接/导入数据——数据处理/清洗(过滤、筛选、新增公式列)——探索式分析——数据可视化——出报告。

二、数据清洗加工

1.薪水上下限分割:

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

薪水下限(数值):left( indexofarray ( split (salary,"-") ,1),find( "K",INDEXOFARRAY( split(salary,"-") ,1))-1)

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

薪水上限(数值):left( 薪水上限(文本),find("K",薪水上限(文本))-1 )

这样就得到每个岗位的数值格式的薪水区间了:

2.脏数据清洗:

浏览了一下数据,没有大问题,但是发现里面有一些类似BIM工程师的岗位信息,这些应该都是土木行业的工程师,这边我直接过滤掉即可(不包含“BIM”且不包含“bim”)。

3.岗位平均数据计算

再新增列,平均薪水=(薪水下限+薪水上限)/2,即可得到每个岗位的平均薪水。

4.真实城市截取

由于城市字段存储有的数据为“城市-区域”格式,例如“上海-徐汇区”,为了方便分析每个城市的数据,最后新增列“城市”,截取“-”前面的真实城市数据。

城市:if(find("-",city)>0 , left(city, find("-",city)-1 ),city)

至此,18000多条数据差不多清洗完毕,食材已经全部准备好,下面可以正式开始数据可视化的美食下锅烹饪。

三、数据可视化

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

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

我这边以各城市平均薪水/岗位数量分析为例给大家简单展示FineBI的可视化呈现过程。

1、横轴以“城市”字段扩展,展现两类数据。先是薪水值,拖拽到纵轴,默认对数值类的字段是汇总求和的。点击字段可直接对改字段修改计算、过滤等操作。

此图来自官网,图中数据不是本次分析的数据,仅供参考

2、然后分析每个城市BI岗位的情况。将数据记录数这个指标拖入到纵轴展示。同样的方式,可以修改字段名。这里为了区分两者,将其修改为折线图,并且倒叙展示。

同理,其他图表也是这样的操作,想清楚展现什么样的数据,怎样展现,数据要作何处理。就得心应手了。其他图表就不一一赘述了。

最后,大概花了15分钟,一份完整的智联招聘网站-BI工程师岗位数据分析的可视化报告就制作完成啦~

审美有限,只能做成这样,其实这个FineBI还能做出这样的效果。

四、分析结果

1.目前BI工程师岗位在智联招聘网站的平均薪资为13.46K(痛哭。。。拉低平均薪水的存在),主要薪水区间大概在12-15K(占比27.07%),相关工作需求总数为634个(仅仅为某一天的招聘需求数据)。

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

3.从工作年限的平均薪水和岗位需求数量来看,工作5-10年的资深BI工程师的平均薪水可以达到20K以上(朝资深BI工程师方向奋斗!!!1年以下年限的计算出来的平均薪水虽然为19K,但是由于样本量只有3个,所以参考意义不大),其中大部分的工作需求年限为3-5年,平均薪水为14.24K。

4.从学历方面来看,最低学历需求主要以本科/大专为主,本科和大专学历要求的平均薪资分别为12.68K和11.97K(感觉差距并不大,过硬的技术实力可能才是企业最为看重的吧),博士和硕士学历需求很少。

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

醍醐灌顶,顿时有了奋斗的动力~知识就是财富,继续好好学习去吧,少年!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 前言 BI全称商业智能(Business Intelligence),在传统企业中,它是一套完整的解决方案。将企业...
    ghostdogss阅读 785评论 0 2
  • 一个人站在图书馆的楼梯口向外望,路灯把一对情侣的身影拉的好长好长,一群人结伴走过,校园广播放着熟悉的歌,这时候,我...
    长一点阅读 191评论 0 0
  • 昨晚听妈妈讲了一件传奇的事,如果不是发生在身边,不是发生在认识的人身上,我一定觉得是在听故事。 我的一位表...
    悦妈读书阅读 417评论 5 3
  • 本周空吧学习分享在三分厂小会议室举行,学习活法两章节第一:心中存在真理的内核。第二灾难消业该庆祝。有小叶家人进行朗...
    武敬南阅读 479评论 0 0
  • 你是不是羡慕哪些有思想深度的人,对一件事总有自己独特的观点,许多人学写作,却总感觉无话可说,分析问题都是俗知俗见,...
    诸葛妙计阅读 1,402评论 0 0