用 Python 看清岗位结构变化:数据采集、入库与可视化
岗位结构在怎么变,不必只转述别人的结论,自己动手算一遍更可靠。公开报告可作参照(如 LinkedIn 就业报告、猎聘《2026 FDE 人才供需趋势洞察报告》),本文聚焦方法:采集 → 入库 → 分析 → 可视化。 ## 一、数据采集 合规前提:遵守目标站点 robots 协议与服务条款,控制请求频率,仅用于个人学习研究。 ``` import csv import time import requests def fetch_page(keyword: str, page: int) -> list: """按关键词拉取一页职位列表,接口地址请替换为合规数据源。""" resp = requests.get( "https://你的数据源地址/api/jobs", params={"kw": keyword, "page": page}, headers={"User-Agent": "research-script/1.0"}, timeout=10, ) resp.raise_for_status() return resp.json()["items"] rows = [] for kw in ["智能体", "数字人", "AI运营", "客服", "文案"]: for p in range(1, 4): rows += fetch_page(kw, p) time.sleep(2) with open("jobs.csv", "w", newline="", encoding="utf-8") as f: writer = csv.DictWriter( f, fieldnames=["title", "salary_min", "salary_max", "city", "publish_date"] ) writer.writeheader() writer.writerows(rows) ``` ## 二、入库 ``` CREATE TABLE job_posting ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, category TEXT, salary_min REAL, salary_max REAL, city TEXT, publish_date TEXT ); CREATE INDEX idx_category ON job_posting(category); ``` ## 三、归类与分析 ``` import pandas as pd df = pd.read_csv("jobs.csv") AI_KEYS = ["智能体", "数字人", "AI", "大模型", "提示词"] def classify(title: str) -> str: return "AI应用类" if any(k in title for k in AI_KEYS) else "传统运营类" df["category"] = df["title"].map(classify) df["salary_mid"] = (df["salary_min"] + df["salary_max"]) / 2 summary = df.groupby("category").agg( 职位数=("title", "count"), 薪资中位数=("salary_mid", "median"), ) print(summary) ``` ## 四、可视化 ``` import matplotlib.pyplot as plt summary["职位数"].plot(kind="bar") plt.ylabel("职位数") plt.tight_layout() plt.savefig("jobs.png", dpi=150) ``` 若数据源提供投递量,可进一步计算供需比 = 投递量 ÷ 职位数。文章中的结论应由你跑出的真实数据回填,以上代码只负责把方法跑通。