3.3 【实战】爬取BOSS直聘招聘信息

2024-08-27 15:20

本文主要是介绍3.3 【实战】爬取BOSS直聘招聘信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第四节:爬取招聘网站信息

课程目标

  • 对boss直聘招聘信息爬取并进行简单的分析

课程内容

编码实现

解析网站:https://www.spidertools.cn/#/curl2Request

1. 爬虫部分
import requests
import pandas as pd
from tqdm import tqdm
import time
def get_job_list(page=1):headers = {"accept": "application/json, text/plain, */*","accept-language": "zh-CN,zh;q=0.9","priority": "u=1, i","referer": "https://www.zhipin.com/web/geek/job?query=python%E5%BC%80%E5%8F%91&city=101270100","sec-ch-ua": "\"Not)A;Brand\";v=\"99\", \"Google Chrome\";v=\"127\", \"Chromium\";v=\"127\"","sec-ch-ua-mobile": "?0","sec-ch-ua-platform": "\"Windows\"","sec-fetch-dest": "empty","sec-fetch-mode": "cors","sec-fetch-site": "same-origin","traceid": "F-a05d1b8WJPFaqSiJ","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","x-requested-with": "XMLHttpRequest"}cookies = {"Hm_lvt_194df3105ad7148dcf2b98a91b5e727a": "1724658599","HMACCOUNT": "E109D3011F5CA4E9","__g": "-","Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a": "1724674759","__fid": "ef51d0c8944e0fc0a3e5db1854b55699","__zp_stoken__": "ad34fw47CtMKKH0VeaxofG1LCiH9qecONUcKKw4zDgXFQVMK4UMK8w4dkcsOMw4HCrsKzw4HCscKeasK3wrjCtcK1wpdZwqzCssKjUcKRUMKgUMSMwqTCpMSnxInFgcOmf8O0w4XCqEI2FBAUEg4WGhYYHBYaERMXFBAUEg4UEBQSDkI5xIFxMkRDSEM1VlpWEVlpaFFqVRNeTk5HRWEXGV5FP0FDR0HDj0HDhB%2FDi0XDghvDjUHCvmFDT0FFw4caME3DgCAXwr5KEcKAF0AVZWLDk23EjVYnw4TCvj1DR8ODxYRIQCNJPkRKREJPREAzQivDkW%2FEjVwhw4LCszRDHkxARE1AREBETz5GNERLYi5AQTNKEg4XFR03T8OFw4DDh8OrQEQ%3D","__c": "1724658600","__a": "39645613.1724658600..1724658600.19.1.19.19"
}url = "https://www.zhipin.com/wapi/zpgeek/search/joblist.json"params = {"scene": "1","query": "python开发","city": "101270100","experience": "","payType": "","partTime": "","degree": "","industry": "","scale": "","stage": "","position": "","jobType": "","salary": "","multiBusinessDistrict": "","multiSubway": "","page": f"{page}","pageSize": "30"}response = requests.get(url, headers=headers, cookies=cookies, params=params)rj  = response.json()zpData = rj['zpData']jobList = zpData['jobList']return jobList
jobs = []
for i in tqdm(range(1, 3)):jobList = get_job_list(i)jobs.extend(jobList)time.sleep(3)
infos = []
for job in jobs:info = {"职位名称":job[ 'jobName'],"薪资":job[ 'salaryDesc'],"学历要求":job[ 'jobDegree'],"要求技能":job[ 'skills'],"公示名称":job[ 'brandName'],"人员规模":job[ 'brandScaleName'],"福利":job[ 'welfareList'],"行业":job[ 'brandIndustry'],"老板名字":job[ 'bossName'],"职位":job[ 'bossTitle'],"所在城市":job[ 'cityName'],"所在区":job[ 'areaDistrict'],"区域":job[ 'businessDistrict'],"在线状态":"在线" if job["bossOnline"] else "离线",
}   infos.append(info)
df = pd.DataFrame(infos)
df.to_csv("boss直聘python开发岗位信息.csv", index=False)
2. 数据分析部分
import pandas as pd
df = pd.read_csv("boss直聘python开发岗位信息.csv")
df.head()
def print_skill_as(skills):splites_skills = []for sk in skills:splites_skills.extend(sk)se = pd.DataFrame({'技能': splites_skills,})gp = se.groupby("技能")dt = gp.size().sort_values(ascending=False)print(dt)
gp = df.groupby("学历要求")
gp.size().sort_values(ascending=False)
a_df =df[df["人员规模"] == "20-99人"]
b_df =df[df["人员规模"] == "100-499人"]
gp = b_df.groupby("薪资")
gp.size().sort_values(ascending=False)
print_skill_as(b_df["福利"])

这篇关于3.3 【实战】爬取BOSS直聘招聘信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112048

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法

《Linux查看系统盘和SSD盘的容量、型号及挂载信息的方法》在Linux系统中,管理磁盘设备和分区是日常运维工作的重要部分,而lsblk命令是一个强大的工具,它用于列出系统中的块设备(blockde... 目录1. 查看所有磁盘的物理信息方法 1:使用 lsblk(推荐)方法 2:使用 fdisk -l(

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

Redis迷你版微信抢红包实战

《Redis迷你版微信抢红包实战》本文主要介绍了Redis迷你版微信抢红包实战... 目录1 思路分析1.1hCckRX 流程1.2 注意点①拆红包:二倍均值算法②发红包:list③抢红包&记录:hset2 代码实现2.1 拆红包splitRedPacket2.2 发红包sendRedPacket2.3 抢

springboot项目redis缓存异常实战案例详解(提供解决方案)

《springboot项目redis缓存异常实战案例详解(提供解决方案)》redis基本上是高并发场景上会用到的一个高性能的key-value数据库,属于nosql类型,一般用作于缓存,一般是结合数据... 目录缓存异常实践案例缓存穿透问题缓存击穿问题(其中也解决了穿透问题)完整代码缓存异常实践案例Red

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实