跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

基于 1300+ 招聘数据分析:自学 Python 的就业门槛与要求

综述由AI生成通过分析拉钩网 1300+ 条 Python 招聘信息,探讨了自学 Python 的就业门槛。数据显示,北京、上海、深圳、杭州是主要需求城市,本科及以上学历及 1-5 年经验最受青睐。技能方面,除 Python 外,后端、MySQL、爬虫及算法能力是高频要求。薪资普遍在 20K-35K 区间。文章建议学习者不仅限于语法,需结合数据库与算法,并通过项目积累实战经验,同时做好长期学习的心理准备。

2177283801发布于 2025/2/6更新于 2026/4/267 浏览
基于 1300+ 招聘数据分析:自学 Python 的就业门槛与要求

自学 Python 到什么程度能找到工作?

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

那么,学到什么程度可以找工作呢?实践是检验真理的唯一标准,当然得看市场需求。毕竟企业招人是来工作的,而不是让你来带薪学习的。

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

一、网页结构分析

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

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

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

import requests
import time

def headers_to_dict(headers_str):
    # 模拟处理 headers 字符串为字典
    lines = headers_str.strip().split('\n')
    return {k: v for k, v in (line.split(': ', 1) for line in lines)}

url = 'https://www.lagou.com/jobs/positionAjax.json?px=new&needAddtionalResult=false'
headers_str = """
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_str)

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 ():
    get_data_from_cloud(i + )
range
76
1

程序写好之后,满怀期待地按下运行按钮,然而得到的结果数据很大可能是这样的反爬提示:

{"success":true,"msg":null,"code":0,"content":{"showId":"8302f64","hrInfoMap":{},"status":false,"msg":"您操作太频繁,请稍后再访问",...}}

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

import requests
import time

def string_util_headers_to_dict(headers_str):
    lines = headers_str.strip().split('\n')
    return {k: v for k, v in (line.split(': ', 1) for line in lines)}

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_str = """
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_str)

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 对数据做分析,所以需要做一下数据格式化。

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

import json
import pandas as pd

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_item = {
                    'city': item['city'],
                    'industryField': item['industryField'],
                    'education': item['education'],
                    'workYear': item['workYear'],
                    'salary': item['salary'],
                    'firstType': item['firstType'],
                    'secondType': item['secondType'],
                    'thirdType': item['thirdType'],
                    'skillLables': ','.join(item['skillLables']),
                    'companyLabelList': ','.join(item['companyLabelList'])
                }
                data.append(dict_item)
        return data

data = get_data_from_file()
df = pd.DataFrame(data)
print(df.head(15))

三、数据分析

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

1. 城市分布

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

from pyecharts import Bar, Pie, opts

top = 15
citys_value_counts = df['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()

由图表可以看出,北京基本占据了四分之一还多的招聘量,其次是上海、深圳、杭州。单单从需求量来说,四个一线城市中广州被杭州所代替。这也就从侧面说明了我们为啥要去一线城市发展了。

2. 学历要求

edu_value_counts = df['education'].value_counts()
edu = list(edu_value_counts.index)
edu_counts = list(edu_value_counts)

pie = (
    Pie()
    .add("", [list(z) for z in zip(edu, edu_counts)])
    .set_global_opts(title_opts=opts.TitleOpts(title="学历分布"), legend_opts=opts.LegendOpts(is_show=False))
)
pie.render_notebook()

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

3. 工作年限

work_year_value_counts = df['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 年以下的招的非常少,所以很多自学的同学都说入行难!

4. 行业分布

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

industrys = list(df['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="行业分布"), legend_opts=opts.LegendOpts(is_show=False))
)
pie.render_notebook()

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

5. 技能要求

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

from wordcloud import WordCloud
import matplotlib.pyplot as plt
import numpy as np

word_data = df['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)
plt.figure(figsize=(16, 9))
plt.imshow(wc)
plt.axis('off')
plt.show()

除去 Python,出现最多的是后端、MySQL、爬虫、全栈、算法等。这意味着单纯掌握 Python 语法是不够的,必须结合数据库和特定业务场景。

6. 薪资水平

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

salary_value_counts = df['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 之间,只要你技术过关,很难找不到满意薪酬的工作。

7. 福利待遇

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

word_data = df['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. 学历门槛:你最好是本科毕业,市场对 1-5 年工作经验的工程师需求量比较大。
  2. 地域分布:需求量最大的城市是北上深杭,建议优先选择这些一线城市发展。
  3. 行业趋势:需求量最多的行业仍然是移动互联网,但人工智能、大数据方向也在增长。
  4. 技能组合:大多数公司都要求除了 Python 基础外,还需掌握 MySQL、后端开发或算法相关技能。
  5. 薪资待遇:只要技术过关,大部分公司给出的薪资还是很可观的,基本都在 20K-35K 之间。

给自学者的建议:

  • 夯实基础:不仅仅只学 Python,还需要学习算法、数据库等相关知识。任何语言都是一样的,基础不牢,地动山摇。
  • 项目驱动:由于 1 年以下经验招聘较少,建议通过参与开源项目或构建个人作品集来弥补经验不足。
  • 持续学习:学好 Python 不论是就业还是做副业赚钱都不错。保持对新技术的敏感度,关注行业动态。
  • 心态调整:你现在走的路,也许是你人生中最困难的一段路,坚持下来总会有机会入行!

希望这份基于真实数据的分析能帮助你更好地规划学习路径,顺利找到心仪的工作。

目录

  1. 自学 Python 到什么程度能找到工作?
  2. 一、网页结构分析
  3. 二、数据清洗
  4. 三、数据分析
  5. 1. 城市分布
  6. 2. 学历要求
  7. 3. 工作年限
  8. 4. 行业分布
  9. 5. 技能要求
  10. 6. 薪资水平
  11. 7. 福利待遇
  12. 四、总结与建议
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 无人机航测内业处理:iTwin Capture Modeler 建模流程
  • uv 虚拟环境管理:venv 创建、激活与 Python 版本指定
  • Nginx 反向代理配置 React 前端与 Python 后端
  • C++ 实现 JSON 与 HTTP 协议,从零构建 Web 计算器服务器
  • Xcode 接入 AI 大模型 Ollama 配置与使用指南
  • 格拉姆角场(GAF)详解
  • Python 国内常用镜像下载网址及配置方法
  • 基于 Django 与 Vue 的酒店管理系统设计与实现
  • OpenClaw 飞书机器人搭建流程
  • Git Worktree 原理与实战:解析 Cursor 2.0 多 Agent 并行模式
  • RustFS Docker 单节点部署指南
  • Java 基本语法
  • 渐进式 Web 应用开发实例:核心技术与实战
  • 基于 MCP 协议辅助 JS 逆向分析与调试
  • 当看到 Bug 背后的真相,我选择了沉默
  • LabVIEW 操作 Access 与 SQL Server 数据库实战指南
  • 企业级 Copilot 安全:权限配置与风险防控的 4 个核心要点
  • node-llama-cpp 跨平台安装与配置实战
  • Spring AI 简介:Java 智能开发入门
  • 竞争自适应重加权采样(CARS)算法在光谱数据变量选择中的应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online