【Python自动化爬虫】一键获取Boss直聘岗位招聘信息

【Python自动化爬虫】一键获取Boss直聘岗位招聘信息

精准拦截API数据流|12维度结构化存储|DrissionPage高级应用


🔥 功能简介

通过30行核心代码实现以下功能:

  • 自动采集10页Java/测试岗位信息
  • 精准解析薪资、融资情况、福利待遇等12个维度
  • 输出标准CSV文件(bossdata_Java_测试.csv)
  • 基于混合驱动模式绕过动态加载限制

🛠️ 技术亮点

  • API监听技术精准捕获zpgeek接口
  • 智能转换数组字段(技能/福利)
  • 企业信息全息解析(规模/融资/领域)
  • 地理信息三级划分(城市→区域→街道)
  • 自动化翻页系统

📥 使用方法

  1. 安装依赖:
pip install DrissionPage
  1. 浏览器路径配置(首次运行必需❗)
    在任意Python环境中执行:
from DrissionPage import ChromiumOptions

# 修改为你的Chrome安装路径
path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
ChromiumOptions().set_browser_path(path).save()  # 永久生效配置
  1. 创建爬虫文件boss_spider.py
# 导入自动化模块
from DrissionPage import ChromiumPage
# 导入一个格式化输出模块
from pprint import pprint
# 导入csv
import csv

# 创建文件对象
f = open('bossdata_Java_测试.csv',mode='w',encoding='utf-8',newline='')
csv_writer = csv.DictWriter(f,fieldnames=[
        '职位',
        '城市',
        '区域',
        '街道',
        '公司名',
        '薪资',
        '学历',
        '领域',
        '融资情况',
        '规模',
        '技能要求',
        '福利'
])
# 写入表头
csv_writer.writeheader()
# 自动打开浏览器
dp =ChromiumPage()
# 监听数据包
dp.listen.start('wapi/zpgeek/search/joblist.json')
# 访问网站
dp.get('https://www.zhipin.com/web/geek/job?query=%E6%B5%8B%E8%AF%95%2Fjava&city=101200100')
# 循环翻页
for page in range(1,11):
    print(f'正在采集第{page}页的内容')
    # 下滑页面到底部
    dp.scroll.to_bottom()
    # 等待数据包加载
    resp = dp.listen.wait()
    # 获取响应数据
    json_data = resp.response.body
    # 提取职位信息
    jobList = json_data['zpData']['jobList']
    for i in jobList:
        print(i)
        # 提取相关数据,保存字典
        dit = {
            '职位':i['jobName'],
            '城市':i['cityName'],
            '区域':i['areaDistrict'],
            '街道':i['businessDistrict'],
            '公司名':i['brandName'],
            '薪资':i['salaryDesc'],
            '学历': i['jobDegree'],
            '领域': i['brandIndustry'],
            '融资情况': i['brandStageName'],
            '规模': i['brandScaleName'],
            '技能要求': ' '.join(i['skills']),
            '福利': ' '.join(i['welfareList'])
        }
        # 写入数据
        csv_writer.writerow(dit)
        print(dit)

        # 点击下一页
        dp.ele('css:.ui-icon-arrow-right').click()
  1. 运行脚本:
python boss_spider.py
  1. 查看生成的CSV数据文件

🧠 代码解析

# API监听黑科技
dp.listen.start('wapi/zpgeek/search/joblist.json')  # 精准捕获数据接口

# 分页采集系统
for page in range(1,11):
    dp.scroll.to_bottom()  # 触发页面懒加载
    resp = dp.listen.wait()  # 等待接口响应
    
    # 数据加工流水线
    for i in resp.response.body['zpData']['jobList']:
        dit = {
            '街道': i['businessDistrict'],  # 三级地理信息
            '融资情况': i['brandStageName'],  # 企业资本解析
            '技能要求': ' '.join(i['skills']),  # 数组转字符串
            # ...其他字段处理...
        }
        csv_writer.writerow(dit)

    dp.ele('css:.ui-icon-arrow-right').click()  # 特征翻页按钮

⚠️ 注意事项

  1. 必须配置浏览器路径(避免BrowserNotFoundError)
  2. 首次运行需同意浏览器驱动程序权限
  3. 控制采集速度为3秒/页以上(防封禁)
  4. 网站接口变动需更新JSON字段映射
  5. 不同岗位需修改URL的query参数:
# 替换query参数切换岗位
dp.get('https://www.zhipin.com/web/geek/job?query=python&city=101010100')  # Python北京

实用工具请点赞收藏 ⭐


💡 数据样本展示:

职位薪资公司名融资情况技能要求
Java开发20-40k·14薪字节跳动D轮及以上SpringCloud MySQL…
测试工程师15-25k华为已上市自动化测试 Python…

免责声明:本工具仅用于学习交流,请遵守Boss直聘数据采集规范,禁止商业用途。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值