对于python这块有任何不懂的问题可以随时来问我,我对于学习方法,系统学习规划,还有学习效率这些知道一些,希望可以帮助大家少走弯路。当然也会送给大家一份系统性的python资料,文末附有爬虫项目实战-爬取你心仪的职位的实战项目源码练习

随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人知道并开始学习 Python。无论你是是科班出身还是非科班转行,Python 无疑都是非常适合你入门计算机世界的第一语言,其语法非常简洁,写出的程序易懂,这也是 Python 一贯的哲学「简单优雅」,在保证代码可读的基础上,用尽可能少的代码完成你的想法。

那么,我们学习 Python 到什么程度,就可以开始找工作了呢,大家都知道,实践是检验这里的唯一标准,那么学到什么程度可以找工作,当然得看市场的需求,毕竟企业招你来是工作的,而不是让你来带薪学习的。

所以,今天我们就试着爬取下拉钩上关于 Python 的招聘信息,来看看市场到底需要什么样的人才。

一、网页结构分析

打开拉勾网首页,输入关键字「Python」,接着按 F12 打开网页调试面板,切换到「Network」选项卡下,过滤条件选上「XHR」,一切准备就绪之后点击搜索,仔细观察网页的网络请求数据。

从这些请求中我们可以大致猜测到数据好像是从 jobs/positionAjax.json这个接口获取的。

别急,我们来验证下,清空网络请求记录,翻页试试。当点击第二页的时候,请求记录如下。

可以看出,这些数据是通过 POST 请求获取的,Form Data 中的 pn 就是当前页码了。好了,网页分析好了,接下来就可以写爬虫拉取数据了。你的爬虫代码看起来可能会是这样的。

url = "https://www.lagou.com/jobs/positionAjax.json?px=new&needAddtionalResult=false’

headers = “”"

accept: application/json, text/javascript, /; q=0.01

origin: https://www.lagou.com

referer: https://www.lagou.com/jobs/list_python?px=new&city=%E5%85%A8%E5%9B%BD

user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

“”"

headers_dict = headers_to_dict(headers)

def get_data_from_cloud(page):

params = {

"first’: "false’,

"pn’: page,

"kd’: "python’

}

response = requests.post(url, data=params, headers=headers_dict, timeout=3)

result = response.text

write_file(result)

for i in range(76):

get_data_from_cloud(i + 1)

程序写好之后,激动的心,颤抖的手,满怀期待的你按下了 run 按钮。美滋滋的等着接收数据呢,然而你得到的结果数据很大可能是这样的。

{“success”:true,“msg”:null,“code”:0,“content”:{“showId”:“8302f64”,“hrInfoMap”:{“6851017”:{“userId”:621208…

{“status”:false,“msg”:“您操作太频繁,请稍后再访问”,“clientIp”:“xxx.yyy.zzz.aaa”,“state”:2402}

不要怀疑,我得到的结果就是这样的。这是因为拉勾网做了反爬虫机制,对应的解决方案就是不要频繁的爬,每次获取到数据之后适当停顿下,比如每两个请求之间休眠 3 秒,然后请求数据时再加上 cookie 信息。完善之后的爬虫程序如下:

home_url = "https://www.lagou.com/jobs/list_python?px=new&city=%E5%85%A8%E5%9B%BD’

url = "https://www.lagou.com/jobs/positionAjax.json?px=new&needAddtionalResult=false’

headers = “”"

accept: application/json, text/javascript, /; q=0.01

origin: https://www.lagou.com

referer: https://www.lagou.com/jobs/list_python?px=new&city=%E5%85%A8%E5%9B%BD

user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36

“”"

headers_dict = string_util.headers_to_dict(headers)

def get_data_from_cloud(page):

params = {

"first’: "false’,

"pn’: page,

"kd’: "python’

}

s = requests.Session() # 创建一个session对象

s.get(home_url, headers=headers_dict, timeout=3) # 用 session 对象发出 get 请求,获取 cookie

cookie = s.cookies

response = requests.post(url, data=params, headers=headers_dict, cookies=cookie, timeout=3)

result = response.text

write_file(result)

def get_data():

for i in range(76):

page = i + 1

get_data_from_cloud(page)

time.sleep(5)

不出意外,这下可以就可以获得全部数据了,总共 1131 条。

二、数据清洗

上文我们将获取到的 json 数据存储到了 data.txt 文件中,这不方便我们后续的数据分析操作。我们准备用 pandas 对数据做分析,所以需要做一下数据格式化。

处理过程不难,只是有点繁琐。具体过程如下:

def get_data_from_file():

with open("data.txt’) as f:

data = []

for line in f.readlines():

result = json.loads(line)

result_list = result["content’]["positionResult’]["result’]

for item in result_list:

dict = {

"city’: item["city’],

"industryField’: item["industryField’],

"education’: item["education’],

"workYear’: item["workYear’],

"salary’: item["salary’],

"firstType’: item["firstType’],

"secondType’: item["secondType’],

"thirdType’: item["thirdType’],

# list

"skillLables’: ",’.join(item["skillLables’]),

"companyLabelList’: ",’.join(item["companyLabelList’])

}

data.append(dict)

return data

data = get_data_from_file()

data = pd.DataFrame(data)

data.head(15)

三、数据分析

获取数据和清洗数据只是我们的手段,而不是目的,我们最终的目的是要通过获取到的招聘数据挖掘出招聘方的需求,以此为目标来不断完善自己的技能图谱。

城市

先来看看哪些城市的招聘需求最大。这里我们只取 Top15 的城市数据。

top = 15

citys_value_counts = data["city’].value_counts()

citys = list(citys_value_counts.head(top).index)

city_counts = list(citys_value_counts.head(top))

bar = (

Bar()

.add_xaxis(citys)

.add_yaxis("", city_counts)

)

bar.render_notebook()

pie = (

Pie()

.add("", [list(z) for z in zip(citys, city_counts)])

.set_global_opts(title_opts=opts.TitleOpts(title=""))

.set_global_opts(legend_opts=opts.LegendOpts(is_show=False))

)

pie.render_notebook()

由上图可以看出,北京基本占据了四分之一还多的招聘量,其次是上海,深圳,杭州,单单从需求量来说,四个一线城市中广州被杭州所代替。

这也就从侧面说明了我们为啥要去一线城市发展了。

学历

eduction_value_counts = data["education’].value_counts()

eduction = list(eduction_value_counts.index)

eduction_counts = list(eduction_value_counts)

pie = (

Pie()

.add("", [list(z) for z in zip(eduction, eduction_counts)])

.set_global_opts(title_opts=opts.TitleOpts(title=""))

.set_global_opts(legend_opts=opts.LegendOpts(is_show=False))

)

pie.render_notebook()

看来大多公司的要求都是至少要本科毕业的,不得不说,当今社会本科基本上已经成为找工作的最低要求了(能力特别强的除外)。

工作年限

work_year_value_counts = data["workYear’].value_counts()

work_year = list(work_year_value_counts.index)

work_year_counts = list(work_year_value_counts)

bar = (

Bar()

.add_xaxis(work_year)

.add_yaxis("", work_year_counts)

)

bar.render_notebook()

3-5年的中级工程师需求最多,其次是 1-3 年的初级工程师。

其实这也是符合市场规律的,这是因为高级工程师换工作频率远远低于初中级,且一个公司对高级工程师的需求量是远远低于初中级工程师的。

但是发现1年以下的招的非常少,所以很多自学的同学都说入行难!

行业

我们再来看看这些招聘方都属于哪些行业。因为行业数据不是非常规整,所以需要单独对每一条记录按照 , 作下切割。

industrys = list(data["industryField’])

industry_list = [i for item in industrys for i in item.split(’,’) ]

industry_series = pd.Series(data=industry_list)

industry_value_counts = industry_series.value_counts()

industrys = list(industry_value_counts.head(top).index)

industry_counts = list(industry_value_counts.head(top))

pie = (

Pie()

.add("", [list(z) for z in zip(industrys, industry_counts)])

.set_global_opts(title_opts=opts.TitleOpts(title=""))

.set_global_opts(legend_opts=opts.LegendOpts(is_show=False))

)

pie.render_notebook()

移动互联网行业占据了四分之一还多的需求量,这跟我们的认识的大环境是相符合的。

技能要求

来看看招聘方所需的技能要求词云。

word_data = data["skillLables’].str.split(’,’).apply(pd.Series)

word_data = word_data.replace(np.nan, "’)

text = word_data.to_string(header=False, index=False)

wc = WordCloud(font_path=’/System/Library/Fonts/PingFang.ttc’, background_color=“white”, scale=2.5,

contour_color=“lightblue”, ).generate(text)

wordcloud = WordCloud(background_color="white’, scale=1.5).generate(text)

plt.figure(figsize=(16, 9))

plt.imshow(wc)

plt.axis("off’)

plt.show()

除去 Python,出现最多的是后端、MySQL、爬虫、全栈、算法等。

薪资

接下来我们看看各大公司给出的薪资条件。

salary_value_counts = data["salary’].value_counts()

top = 15

salary = list(salary_value_counts.head(top).index)

salary_counts = list(salary_value_counts.head(top))

bar = (

Bar()

.add_xaxis(salary)

.add_yaxis("", salary_counts)

.set_global_opts(xaxis_opts=opts.AxisOpts(name_rotate=0,name=“薪资”,axislabel_opts={“rotate”:45}))

)

bar.render_notebook()

大部分公司给出的薪资还是很可观的,基本都在 20K-35K 之间,只要你技术过关,很难找不到满意薪酬的工作。

福利

最后咱来看看公司给出的额外福利都有哪些。

word_data = data["companyLabelList’].str.split(’,’).apply(pd.Series)

word_data = word_data.replace(np.nan, "’)

text = word_data.to_string(header=False, index=False)

wc = WordCloud(font_path=’/System/Library/Fonts/PingFang.ttc’, background_color=“white”, scale=2.5,

contour_color=“lightblue”, ).generate(text)

plt.figure(figsize=(16, 9))

plt.imshow(wc)

plt.axis("off’)

plt.show()

年底双薪、绩效奖金、扁平化管理。都是大家所熟知的福利,其中扁平化管理是互联网公司的特色。不像国企或者其他实体企业,上下级观念比较重。

四、总结

今天我们抓取了拉勾网 1300+ 条关于 Python 的招聘数据,对这批数据分析之后我们得出如下结论:

关于学历你最好是本科毕业,市场对 1-5 年工作经验的工程师需求量比较大,需求量最大的城市是北上深杭,需求量最多的行业仍然是移动互联网,而且大多数公司都会给到不错的薪酬待遇。

对于那些自学想入门的同学:建议不仅仅只学Python,还需要学习算法、数据库等相关知识,任何语言都是一样的,只要你坚持学习,总会有机会入行!

你现在走的路,也许是你人生中最困难的一段路!

需要系统性的python的资料,或者爬虫项目实战-爬取你心仪的职位,这部分实战源码及教学视频的可以私信我,或者加我扣群867067945

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

python工作招聘-学习Python 能找到工作?1300+条招聘信息告诉你答案相关推荐

  1. 自学 Python 到什么程度能找到工作,1300+ 条招聘信息告诉你答案

    随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人接触并开始学习 Python.无论你是是科班出身还是非科班转行,Python 无疑都是非常适合你入门计算机世界的第一门语言,其语 ...

  2. python学到什么程度可以找到工作-Python学到什么程度才可以去找工作?掌握这4点足够了!...

    大家在学习Python的时候,有人会问"Python要学到什么程度才能出去找工作",对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来 ...

  3. python到底要学多久才能找到工作?

    现在 Python 很火,很多准备学 Python 或者正在学习 Python 中或多或少又都会听到 Python 难就业,难找工作的问题.所以本次 Chat 好好分析下当前 Python 的就业市场 ...

  4. 自学python到什么程度可以找工作-Python学到什么程度可以找到工作

    凡是找不到工作的,能力都没有达到公司对初级程序员的最低要求. 目前Python 职位很多,用排除法,适合完全小白转到初级程序员 只有二种职位比较适合:web开发.爬虫 那么...Python学到什么程 ...

  5. 为什么学习Python?选择学习Python的10个理由

    前言 为什么学习Python?选择学习Python的10个理由 Python提供了许多有用的功能特性,这些功能使其相比其他编程语言更流行也更易于学习.它支持面向对象的编程,也支持面向过程编程:我们在下 ...

  6. 自学python能找到工作吗-学习Python真的能找到工作吗?

    起因一 前几天,去个商场逛逛,突然有个小伙子给我一张传单,写着"人生苦短,我学Python",就像从前"华尔街"英语一样... 接下来,我发现很多手机里电脑上关 ...

  7. 学习Python, 没有工作经验没学历能找到工作吗?

    随着人工智能时代的到来,Python的需求也变的越来越大了.从目前各大IT招聘网上显示招聘需求是非常大,而且薪资基本都在10k起,高的可达40-50k,不过想找到工作还是有要求:以下让我慢慢道来: 那 ...

  8. python学到什么程度可以找到工作-月薪2万+的Python Web岗,学到什么程度能找到工作?...

    原标题:月薪2万+的Python Web岗,学到什么程度能找到工作? 学Python Web开发框架到什么程度可以找到开发的工作? 做出一个什么样的网站?看懂框架的源码? 今天我们来看看2位过来人的回 ...

  9. python学到什么程度可以找到工作-Python学到什么程度可以面试工作?

    0710更新: 不多说,上干货!!!最近得到了一张比较全面的Python图谱,直接分享给你们!!!(我看过,知识点还是很全面的,基础知识.数据分析.爬虫实战.后台开发实战以及人工智能实战项目,都包含了 ...

最新文章

  1. 2015: [Usaco2010 Feb]Chocolate Giving
  2. python编程基础人民邮电出版社_Python编程基础与应用
  3. ABAP源程序---发票校验明细表
  4. 关于Android的硬件抽象层添加进Android系统默认编译的问题
  5. python + selenium + Js 处理轮动条
  6. node.js查询oracle,nodejs操作oracle数据库示例
  7. python中函数的入门
  8. python廖雪峰教程 学习笔记
  9. directUI的心得
  10. python 微服务 etcd_python etcd api
  11. [心得]分布式系统概念与设计知识整理
  12. c语言 多核优化,【模型工具】一种对SWMM5的多核优化
  13. 基于51单片机实现8位数码管显示表白数字(Proteus仿真)
  14. STVP烧录HEX文件方法
  15. Hyperledge Fabric-身份与角色认证
  16. win10 更新计算机时间,win10电脑时间不能自动更新
  17. 【第三方API】顺丰API调用总结-java
  18. AI值得信任吗?“可信AI”或能给出答案
  19. java解析axure原型rp文件,Axure RP 8 教程 – 查看原型
  20. 基于Faster-RCNN的目标检测(TF版) 步骤与问题解决办法

热门文章

  1. latex hyperref_LaTeX 使用心得
  2. Vim - 文本替换
  3. LeakCanary(一)使用篇
  4. 我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录
  5. Kubernetes——自动扩展容器!假设你突然需要增加你的应用;你只需要告诉deployment一个新的 pod 副本总数即可...
  6. Raft 为什么是更易理解的分布式一致性算法——(1)Leader在时,由Leader向Follower同步日志 (2)Leader挂掉了,选一个新Leader,Leader选举算法。...
  7. LRU(Least Recently Used)算法的理解
  8. 【Crash Course Psychology】1. Intro to psychology笔记
  9. shell脚本 定期删除日志
  10. (2)java基础继承