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

随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人知道并开始学习 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.01origin: https://www.lagou.comreferer: https://www.lagou.com/jobs/list_python?px=new&city=%E5%85%A8%E5%9B%BDuser-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.01origin: https://www.lagou.comreferer: https://www.lagou.com/jobs/list_python?px=new&city=%E5%85%A8%E5%9B%BDuser-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 datadata = get_data_from_file()data = pd.DataFrame(data)data.head(15)

图片

三、数据分析

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

城市

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

top = 15citys_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 = 15salary = 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 不论是就业还是做副业赚钱都不错,这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

👉CSDN大礼包:《python入门&进阶学习资源包》免费分享

Python全套学习资料👇👇👇

在这里插入图片描述
(部分资料截取图)
在这里插入图片描述

① Python全套书籍和视频秘籍

其中包含了Python基础入门、爬虫、数据分析、web开发,这里一共有几十个吧,可能不是很多,但对于初学者来说应该足够。
里面的知识点都是比较干练的,时长也是正常的40分钟一节课。
在这里插入图片描述

②Python数据分析入门到精通

(视频课程+课件+源码)
在这里插入图片描述

③零基础也能懂的python办公自动化教程

在这里插入图片描述

④Python面试集锦和简历模板

学会了Python之后,有了技能就可以出去找工作了!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述

⑤Python副业兼职路线

学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述 上述所有资料 ⚡️ ,朋友们如果有需要《全套0基础入门到进阶的Python学习资料》的,可以扫描下方二维码免费领取 🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值