【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文件,不包含岗位的职位描述的文件,如果还需要职位的描述字段需要继续执行最后一行代码
获取岗位职责(存放文件夹位置)

图片

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值