Python爬虫 boos招聘网站

本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关。
本文章是自己学习的一些记录。

爬取Boss网站的招聘信息

1、导入相关的包

#coding=utf-8
import requests,json
from lxml import  etree

2、定义url和请求头headers

url='https://www.zhipin.com/c100010000/?ka=open_joblist'
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
}

这里要说明一下,在headers里面我一开始就按上面的设置进行爬取,发现拿不到网页的源码内容,返回的是乱七八糟的而且还不包含我们想要的内容,经过查询发现需要添加cookie,这里我添加一个博客里面有讲解cookie,https://blog.csdn.net/wuqing942274053/article/details/80426530?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159482245419195188402581%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159482245419195188402581&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-10-80426530.pc_ecpm_v3_pc_rank_v3&utm_term=%E7%88%AC%E8%99%ABcookie
添加上cookie

url='https://www.zhipin.com/c100010000/?ka=open_joblist'
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2',
    'cookie':''
}

cookie寻找的办法:
在网页中按f12或者其他鼠标右键的检查,刷新页面:
在这里插入图片描述
按照红色箭头的位置,查询就可以找到cookie 把后面的内容添加到请求头headers的cookie里面即可(具体有一种cookie时效性那个还没有学)
3、发送get请求

res=requests.get(url=url,headers=headers)

4、判断get请求是否成功,成功后解析数据,并且将数据写成json数据格式

if res.status_code==200:
    print('请求成功')
    #解析数据
    # res_html1=res.content.decode('utf-8')
    html = etree.HTML(text)

    job_data = html.xpath('//div[@class="job-title"]//a/text()')
    city_data = html.xpath('//span[@class="job-area-wrapper"]//span/text()')
    company_data = html.xpath('//div[@class="company-text"]//h3//a[1]/text()')
    company_type_data = html.xpath('//div[@class="company-text"]//p//a[1]/text()')
    data = list(zip(job_data, city_data, company_data, company_type_data))
    datalist=[{'岗位':i[0],'工作地点':i[1],'公司名称':i[2],'公司类型':i[3]} for i in data]
    print(datalist) #返回[{'岗位': '算法工程师', '工作地点': '上海', '公司名称': '拼多多', '公司类型': '移动互联网'}, {'岗位': '嵌入式驱动开发', '工作地点': '上海·徐汇区', '公司名称': '闻泰科技', '公司类型': '智能硬件'}, {'岗位': '解决方案工程师', '工作地点': '北京', '公司名称': '美创科技', '公司类型': '信息安全'}, {'岗位': '引擎开发技术专家', '工作地点': '北京·海淀区', '公司名称': '滴滴', '公司类型': '移动互联网'}, {'岗位': '运维开发工程师', '工作地点': '北京·朝阳区', '公司名称': '猿辅导', '公司类型': '在线教育'}, {'岗位': '数值主策划', '工作地点': '北京', '公司名称': '途游游戏', '公司类型': '游戏'}, {'岗位': 'java开发工程师', '工作地点': '北京', '公司名称': '好大夫在线', '公司类型': '互联网'}, {'岗位': '服务端开发-上海-天下事业部', '工作地点': '上海', '公司名称': '网易游戏', '公司类型': '游戏'}, {'岗位': '测试工程师', '工作地点': '北京·海淀区', '公司名称': '今日头条', '公司类型': '移动互联网'}, {'岗位': '高级产品经理', '工作地点': '北京·海淀区', '公司名称': '滴滴', '公司类型': '移动互联网'}, {'岗位': '算法工程师', '工作地点': '北京', '公司名称': '瑞鹏宠物医疗集团', '公司类型': '生活服务'}, {'岗位': 'Java架构师', '工作地点': '北京', '公司名称': '凯捷', '公司类型': '互联网'}, {'岗位': 'iOS开发(高级)(J10132)', '工作地点': '上海·浦东新区', '公司名称': '喜马拉雅', '公司类型': '移动互联网'}, {'岗位': '软件工程师', '工作地点': '北京·海淀区', '公司名称': '厦门四信', '公司类型': '通信/网络设备'}, {'岗位': 'Windows开发工程师', '工作地点': '北京·海淀区', '公司名称': '快手', '公司类型': '社交网络'}, {'岗位': '高级服务器开发工程师c++', '工作地点': '北京', '公司名称': '搜狐畅游', '公司类型': '游戏'}, {'岗位': '三维GIS研发工程师', '工作地点': '北京', '公司名称': '正元地理信息', '公司类型': '计算机软件'}, {'岗位': '高级Java开发工程师', '工作地点': '北京·朝阳区', '公司名称': '猿辅导', '公司类型': '在线教育'}, {'岗位': '高级项目经理', '工作地点': '上海·浦东新区', '公司名称': '网达软件', '公司类型': '计算机软件'}, {'岗位': '后台服务开发工程师', '工作地点': '北京·海淀区', '公司名称': '腾讯', '公司类型': '互联网'}, {'岗位': '搜索广告算法工程师', '工作地点': '上海·长宁区', '公司名称': '拼多多', '公司类型': '移动互联网'}, {'岗位': '搜索/推荐策略产品经理', '工作地点': '北京', '公司名称': 'BOSS直聘', '公司类型': '人力资源服务'}, {'岗位': '游戏系统策划', '工作地点': '北京', '公司名称': '乐元素', '公司类型': '游戏'}, {'岗位': '高级Java开发工程师/技术专家', '工作地点': '北京·朝阳区', '公司名称': '蚂蚁金服', '公司类型': '互联网'}, {'岗位': '泛互联网解决方案架构师(上海)', '工作地点': '上海·徐汇区', '公司名称': '腾讯', '公司类型': '互联网'}, {'岗位': 'AI加速器Compiler工程师', '工作地点': '北京', '公司名称': 'SenseTime', '公司类型': '计算机软件'}, {'岗位': 'DBA运维工程师', '工作地点': '北京', '公司名称': '火花思维', '公司类型': '在线教育'}, {'岗位': '广告Java研发工程师', '工作地点': '上海', '公司名称': '拼多多', '公司类型': '移动互联网'}, {'岗位': '企业流程平台产品经理', '工作地点': '北京·海淀区', '公司名称': '爱奇艺', '公司类型': '互联网'}, {'岗位': '云解决方案架构师', '工作地点': '北京·朝阳区', '公司名称': '阿里云', '公司类型': '互联网'}]
    print(data)     #返回[('算法工程师', '上海', '拼多多', '移动互联网'), ('嵌入式驱动开发', '上海·徐汇区', '闻泰科技', '智能硬件'), ('解决方案工程师', '北京', '美创科技', '信息安全'), ('引擎开发技术专家', '北京·海淀区', '滴滴', '移动互联网'), ('运维开发工程师', '北京·朝阳区', '猿辅导', '在线教育'), ('数值主策划', '北京', '途游游戏', '游戏'), ('java开发工程师', '北京', '好大夫在线', '互联网'), ('服务端开发-上海-天下事业部', '上海', '网易游戏', '游戏'), ('测试工程师', '北京·海淀区', '今日头条', '移动互联网'), ('高级产品经理', '北京·海淀区', '滴滴', '移动互联网'), ('算法工程师', '北京', '瑞鹏宠物医疗集团', '生活服务'), ('Java架构师', '北京', '凯捷', '互联网'), ('iOS开发(高级)(J10132)', '上海·浦东新区', '喜马拉雅', '移动互联网'), ('软件工程师', '北京·海淀区', '厦门四信', '通信/网络设备'), ('Windows开发工程师', '北京·海淀区', '快手', '社交网络'), ('高级服务器开发工程师c++', '北京', '搜狐畅游', '游戏'), ('三维GIS研发工程师', '北京', '正元地理信息', '计算机软件'), ('高级Java开发工程师', '北京·朝阳区', '猿辅导', '在线教育'), ('高级项目经理', '上海·浦东新区', '网达软件', '计算机软件'), ('后台服务开发工程师', '北京·海淀区', '腾讯', '互联网'), ('搜索广告算法工程师', '上海·长宁区', '拼多多', '移动互联网'), ('搜索/推荐策略产品经理', '北京', 'BOSS直聘', '人力资源服务'), ('游戏系统策划', '北京', '乐元素', '游戏'), ('高级Java开发工程师/技术专家', '北京·朝阳区', '蚂蚁金服', '互联网'), ('泛互联网解决方案架构师(上海)', '上海·徐汇区', '腾讯', '互联网'), ('AI加速器Compiler工程师', '北京', 'SenseTime', '计算机软件'), ('DBA运维工程师', '北京', '火花思维', '在线教育'), ('广告Java研发工程师', '上海', '拼多多', '移动互联网'), ('企业流程平台产品经理', '北京·海淀区', '爱奇艺', '互联网'), ('云解决方案架构师', '北京·朝阳区', '阿里云', '互联网')]
    # print(len(data))
    with open("./bossinfo.json",'w',encoding='utf-8') as f:
        json.dump(datalist,f)

这个里面我使用的是xpath对数据进行解析 ,主要对岗位、工作地点、公司名称、公司类型进行了爬取,主要是对单页进行了数的爬取。
爬取后的结果进行了简单处理,并且写入了json文件。写入json文件大家打开可能会看到一串字母也看不清,这里需要百度一下json数据格式化的方式
在这里插入图片描述
类似于上面这样,将你的一长串复制进来先解析 再转为中文

最终 的爬取的数据json格式显示:
在这里插入图片描述
我一共爬取了一页 共有30条数据 保存在json文件中

接下来继续学习 进行多页的爬取

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值