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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

那么,我们学习 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.textwrite_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 请求,获取 cookiecookie = s.cookiesresponse = requests.post(url, data=params, headers=headers_dict, cookies=cookie, timeout=3)result = response.textwrite_file(result)def get_data():for i in range(76):page = i + 1get_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 datadata = 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 年的初级工程师。

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

行业

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

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()

大部分公司给出的薪资还是很可观的,基本都在 15K-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 年工作经验的工程师需求量比较大,需求量最大的城市是北上深杭,需求量最多的行业仍然是移动互联网,而且大多数公司都可以给到不错的薪酬待遇。

通过对这 1300+ 条招聘数据的分析,相信你会更了解现在的就业市场情况,做到知己知彼,才能增加自己在未来工作中的胜算。

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

  1. python工作招聘-学习Python 能找到工作?1300+条招聘信息告诉你答案

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

  2. java学到什么程度安卓_自学Android到什么程度才能找到工作?

    读完本文大概需要4分钟. 微信公众号最近新出了一个功能,我觉得很赞,就是可以非常方便的看到每个人的留言次数.赞赏次数等,截个图给你们看下: 看到这个赞赏数的时候我惊呆了,这位同学竟然持续赞赏了我这么多 ...

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

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

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

    很多人学习Python就是为了找工作,为了顺利转行,但是他们中有很多都是零基础学习的,Python编程知识入门虽然简单,但是深入学习却是无穷无尽的,小白等把所有Python知识都搞清楚再去找工作,估计 ...

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

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

  6. 自学python怎么找工作-我是如何在自学编程9个月后找到工作的

    昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他 自学编程 9 个月后找到工作 的经历.文章不到一天就得到3千多赞,2百条回复.我看了下内容,非常中肯,其中有不少建议也是我在编程教室屡次 ...

  7. 软件工程python就业方向-月薪2万+的Python Web岗,学到什么程度能找到工作?

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

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

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

  9. grep从文件末尾开始找_新人自学前端到什么程度才能找工作?

    这个问题打我记事起到现在,问过我的人,没有1000也有800了.足以见得这个问题是多么的不得人心. 自学前端开发,不管他在网上百度了多少资料,看了多少教程,你总得先做个网页出来.所以,很多人都是从ht ...

最新文章

  1. 【声入人心:音频新体验】
  2. java中针对数字怎么判断_java如何对输入的数字进行判断
  3. 马尔可夫链蒙特卡罗法(Markov Chain Monte Carlo,MCMC)
  4. python操作csv文件第7行开始的数据_Python教程-Python读写CSV文件
  5. Delphi窗口属性
  6. delete kubectl pod_kubectl delete
  7. pulseaudio之pa_simple_new()流程(十八)
  8. 大数据导论章节答案_苹果手机一般能用几年 一份大数据告诉你答案
  9. DirectX 9.0c游戏开发手记之RPG编程自学日志之17: Drawing with DirectX Graphics (用DirectX图形绘图)(第13节)
  10. 新中大财务软件服务器路径修改,新中大软件最常用的操作手册
  11. 办公软件应用2010是国家计算机一级吗,今年计算机二级办公软件高级应用考试,对word版本的要求还是2010的吗?...
  12. 如何将录屏转换为高清GIF
  13. 量化金融笔记1-股票量化基础
  14. linux测坏道脚本,linux测试硬盘坏道
  15. Python之OpenGL笔记(30):飘扬的旗帜
  16. 2022年国内最牛的Java面试八股文合集(MCA版),不接受反驳
  17. 关于高通平台下camera一些参数的设置
  18. 网页上带有图片的输入框
  19. 【算法宇宙——在故事中学算法】背包dp之完全背包问题
  20. 【判断是前端bug还是后端bug】

热门文章

  1. centos 7 firewalld 设置
  2. 评分组件(RatingBar)
  3. shell 脚本编程的10 个最佳实践
  4. 数据镜像备份工具rsync + inotify
  5. form的enctype和action
  6. NodeJS开源系统Mili简介
  7. Nginx使用HTTP基本身份验证限制访问
  8. 创建设计模式 - 工厂设计模式
  9. 国开本科计算机应用基础操作题,2019秋国开大学计算机应用基础Windows7操作系统形考题目及答案...
  10. Kubernetes(十七) 基于NFS的动态存储申请