【BOSS直聘爬取系统功能介绍】

完整代码关注公众号 :

图片

爬取网站:BOSS直聘:https://www.zhipin.com/

难点

1. boss直聘不论什么岗位都只会展示10页数据,就算在网页里加到了11,内容也会和10一样。

2.多次访问会有验证码需要登录,这部分需要手动解除

3. 网站源码被加密了,没法通过request直接链接网站获取源码

图片

解决办法:

采用selenium控制浏览器的方式,成功获取源码,并且获取页面元素

防止页面需要验证来中断爬取,采用企业微信(或者钉钉机器人)的方式来提醒需要验证了(这部分没法代码通过,除非后续采用图像识别跳过验证码)

既然每个岗位只能爬取10页,我们可以采取一个岗位分10个地区,比如我需要爬取长沙市的xx岗位,直接爬取只能出现10页总共300个岗位,但是可以拆分成8个区的爬取,每个区假设都有10页,就可能爬取到80页数据。

爬取系统介绍

功能介绍:

1. 首先在配置文件config中更改爬取要求,

jobs = ['数据分析师']citys = {            # '101280600':'深圳'         '101250100': "长沙",         # '101280100': '广州',         # '101230200':'厦门'         }# areaBusiness = '330113,'.split(',')experience = (",".join    ([  # 不需要的可以注释掉    #     '108',    # 在校生    #     '102',    # 应届生    '101',  # 经验不限    '103',  # 1年以内    '104',  # 1-3年    # '105',    # 3-5年    # '106',    # 5-10年    # '107',    # 10年以上]))degree = ",".join([  # 学历要求    '209',  # 初中及以下    '208',  # 中专/中技    '206',  # 高中    '202',  # 大专    '203',  # 本科    # '204',    # 硕士    # '205',    # 博士])# 获取该城市的各一级区域区号

图片

确定好爬取需求之后,会在当前目下创建一个根据岗位和城市名的文件,后续爬取好的岗位信息都会保存在该文件内。

2. 开始爬取

这是整体系统框架,包含五个函数,最下面是系统的入口

图片

首先需要知道每个地区总共有多个页面可以爬取,首先完成

if __name__ == "__main__":    boss = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()), options=edge_options)    存放文件夹位置=f'D:\Marshal1\Anacada__\工作项目\爬虫\\boss_project\\'+f'{文件名}'    对应页码表=查看每个区存在多少页岗位(存放文件夹位置)

这里需要更改文件存放位置,选择想要将文件保存的地址

执行完函数“查看每个区存在多少页岗位(存放文件夹位置)”之后,在存放文件夹位置下会生成一个文件“对应页码表”,后续需要根据这个文件来确定不同区需要爬取的页码数,防止爬取重复数据。

图片

 
if __name__ == "__main__":
boss = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()), options=edge_options)
存放文件夹位置=f'D:\Marshal1\Anacada__\工作项目\爬虫\\boss_project\\'+f'{文件名}' 对应页码表=查看每个区存在多少页岗位(存放文件夹位置)
 对应页码表=pd.read_csv(f"{存放文件夹位置}\对应页码表.csv") 获取对应岗位信息(对应页码表,存放文件夹位置)
然后执行“获取对应岗位信息(对应页码表,存放文件夹位置)”,之后在本地生成一个csv文件,不包含岗位的职位描述的文件,如果还需要职位的描述字段需要继续执行最后一行代码
获取岗位职责(存放文件夹位置)

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3SRB2516-ASEMI适配大功率充电桩3SRB2516

编辑:ll 3SRB2516-ASEMI适配大功率充电桩3SRB2516 型号:3SRB2516 品牌:ASEMI 封装:SGBJ-5 正向电流(Id):25A 反向耐压(VRRM):1600V 正向浪涌电流&…

【3dmax笔记】028:倒角的使用方法

一、倒角描述 在3dmax中创建倒角效果可以通过多种方法实现,以下是几种常见的方法: 使用倒角修改器。首先创建一个图形(如矩形和圆),然后对齐它们,将它们转化为可编辑样条线,并附加在一起,选择要倒角的边缘,然后使用倒角修改器来调整高度、轮廓等参数。使用倒角剖面修…

听劝!普通人千万别随意入门网络安全

一、什么是网络安全 网络安全是一种综合性的概念,涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”…

校园防欺凌平台

校园霸凌事件很难被发现,发现者又可能迫于威胁而不敢告发,被霸凌者又因各种原因而选择忍耐,所以,如果能够在发生校园霸凌的时候,做出及时的预警,也许能够拯救挽回无数个家庭。本平台结合防欺凌设备&#xf…

【js刷题:数据结构链表之设计链表】

设计链表 一、题目二、题解 一、题目 二、题解 // 定义节点类,每个节点都有一个值和一个指向下一个节点的引用 class LinkNode{constructor(val,next){ // 构造函数,接收节点值和下一个节点的引用this.valval // 节点的值this.nextnext // 指…

查看Linux服务器的硬盘占用情况

查看Linux服务器的硬盘占用情况 一、查看各分区的使用情况和磁盘挂载1、查看磁盘分区使用和磁盘挂载2、结果解释(1)列名解释(2)各系统解释 二、查看一个目录及其所有子目录中文件的总占用大小1、查看指定目录的总大小2、列出目录下…

山东齐鲁文化名人颜廷利:汉语自媒体里面的真正文字智慧

在这个数字技术日新月异的时代,大数据和人工智能等技术的兴起已经深刻地改变了信息的传播方式。特别是随着自媒体的兴起,传统的物质形态的报刊杂志已迅速转变为无形的知识与智慧的流动,这种转变不仅改变了信息的传递手段,更释放出…

GIT基础02 多机器协作等命令

前言 首先我们知道git给我们提供了分支管理的功能 我们一般使用master分支作为线上环境,master分支一般是一个稳定的分支 我们通常是会创建一个其他分支进行开发,这样不会影响线上的机器运行 如果没有git提供这样的分支功能,就无法做到这一套了 指令学习 假设软件出现问题咋办…

SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析

原文链接:SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604401&idx4&snd2d39846dce07bee765c820de1cf92f3&chksmfa821956cdf5904…

长期的图片活码怎么做?在线制作图片活码的方法

现在通过扫描二维码来查看内容的方式,在日常生活中越来越常见,其中扫码看图就是很常用的一种方式。在很多的公共场所或者宣传单页上,扫码后即可查看相关的图片信息,从而获取我们需要的内容,那么在电脑上将图片生成二维…

Pencils Protocol Season 2 收官在即,Season 3 携系列重磅权益来袭

此前Scroll生态LaunchPad &聚合收益平台Pencils Protocol(原Penpad),推出了首个资产即其生态代币PDD的Launch,Season 2活动主要是用户通过质押ETH代币、组件战队等方式,来获得Point奖励,并以该Point为依…

高低温试验箱工厂分享:设备如何保养更节约成本

高低温试验箱在现代产业中起到重要的作用,能够帮助企业进行产品质量和性能的测试,而且这种设备也是一种常见的用于模拟各种极端温度环境的设备。所以这种在特殊环境下使用的设备,维护和保养是关键,正确的保养和维护可以延长设备的…

Spring初学入门(跟学笔记)

一、Spring概述 Spring是一款主流的Java EE轻量级开源框架。 Spring的核心模块:IoC(控制反转,指把创建对象过程交给Spring管理 )、AOP(面向切面编程,在不修改源代码的基础上增强代码功能) 二、…

LeetCode刷题笔记第1800题:最大升序子数组和

LeetCode刷题笔记第1800题:最大升序子数组和 题目: 想法: 遍历数组的同时记录当前最大升序子数组和,最终返回最大升序子数组和 class Solution:def maxAscendingSum(self, nums: List[int]) -> int:result 0i 0n len(num…

istio资源字段参考文档

virtual service: Istio / Virtual ServiceConfiguration affecting label/content routing, sni routing, etc.https://istio.io/latest/docs/reference/config/networking/virtual-service/

网站开发初学者指南:2024年最新解读

在信息交流迅速的时代,网页承载着大量的信息,无论你知道还是不知道,所以你知道什么是网站开发吗?学习网站开发需要什么基本技能?本文将从网站开发阶段、网站开发技能、网站开发类型等角度进行分析,帮助您更…

Vue.js 详细介绍

文章目录 一、Vue.js 简介1.1 什么是 Vue.js?1.2 Vue.js 的特点 二、快速上手 Vue.js2.1 安装 Vue.js使用 CDN使用 npm 或 yarn 2.2 创建一个 Vue 实例2.3 Vue.js 项目结构 三、Vue.js 核心概念3.1 数据绑定3.2 指令(Directives)3.3 组件&…

IDEA不能创建新项目和新模块

问题: IDEA不管是创建新项目还是新模块都创建不成功,会报如下图错误 解决方案: 在电脑设置里搜索 “防火墙和网络保护” ,打开如下图所示 找到你所安装的IDEA,更改设置,选中IDEA 最后,确定&am…

Google Chrome GPU渲染抓包

非安全模式启动 "C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content --disable-web-security 配置环境 set RENDERDOC_HOOK_EGL0 "C:/Program Files/Google/Chrome/Application/chrom…

NXP RT1176(一)——二级BootLoader开发(安全引导加载程序SBL)

目录 1. 开发环境 2. 二级BOOT的功能 3. 步骤 3.1 配置源码 3.2 构建项目 3.2.1 MDK 3.2.2 IAR(IAR也编译一下工程看看,这样两个平台都可以支持了) 单核M7的开发!! 1. 开发环境 本文Windows下开发:…