前言

毕业找工作,在职人员换工作,离职人员找工作……不管什么人群,应聘求职,都需要先分析对应的招聘岗位,岗位需求是否和自己匹配,常见的招聘平台有:BOSS直聘、拉钩招聘、智联招聘等,我们通常的方法都是,打开招聘网站,搜索职位关键字,然后一页一页的逐个查看,觉得还不错的岗位就投递一下简历,或者和招聘负责人聊一下,那么有没有办法,能一次性把相关的招聘岗位列出来,方便快速的分析,答案当然有的……

我想做什么

最近我也在考虑新的工作机会,所以,为了方便才这么做的;下面给大家看个东西,打开后面的链接 BOSS直聘的100个PHP招聘岗位

可以看到,这是表格的形式展示了100个PHP的招聘岗位,没错,这就是我爬取的BOSS直聘网的PHP招聘岗位,为啥是100个呢,我也不敢问啊,毕竟BOSS直聘官网限制了10页,通过爬取数据,然后生成 markdown 表格文件,最后展示在有道分享中,就是上面大家看到的那个了,话不多说,开搞。

运行环境

Python运行环境:Windows + python3.6

用到的模块: requests、bs4

如未安装的模块,请使用 pip instatll xxxxxx 进行安装,例如: pip install requests

爬取Boss直聘数据

在这里,非常不建议大家使用自己的IP去爬取BOSS直聘的数据,因为分分钟就会进小黑屋了,所以,这里,我们走的代理IP,关于代理IP的,我在上篇文章,已经有说到过,大家不明白的可以回头看看;还有在 header 头传的 cookie 值是必传的,大家可以在浏览器中刷新BOSS直聘网站,然后打开 F12 的 Network 中找到,复制过来就能用,而且需要更换,不要一直用同个 cookie 去爬取全部数据,多尝试都懂的……

def get_url_html(self, url, cookie):

"""请求页面html"""

ip_url = self.proxies_ip + ':' + str(self.proxies_port)

proxies = {'http': 'http://' + ip_url, 'https': 'https://' + ip_url}

header = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',

'cookie': cookie

}

request = requests.get(url=url, headers=header, proxies=proxies, timeout=3)

html = False

if request.status_code == 200:

html = request.content

return html

专门建立的Python学习扣扣圈,从零基础开始到Python各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程!点击加入我们的python学习圈

完整源码

#!/usr/bin/env python

# -*- coding: utf-8 -*-

"""

利用requests+bs4爬取Boss直聘数据

author: gxcuizy

date: 2020-06-18

"""

import requests

from bs4 import BeautifulSoup

class GetBossData(object):

"""爬取10页的Boss直聘职位数据"""

domain = 'https://www.zhipin.com'

base_url = 'https://www.zhipin.com/c101280600/?query='

position = ''

# 代理IP地址

proxies_ip = '58.220.95.30'

proxies_port = '10174'

def __init__(self, position):

self.position = position

def get_url_html(self, url, cookie):

"""请求页面html"""

ip_url = self.proxies_ip + ':' + str(self.proxies_port)

proxies = {'http': 'http://' + ip_url, 'https': 'https://' + ip_url}

header = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',

'cookie': cookie

}

request = requests.get(url=url, headers=header, proxies=proxies, timeout=3)

html = False

if request.status_code == 200:

html = request.content

return html

def run(self):

"""执行入口"""

page_list = range(1, 11)

# 打开文件,准备写入

dict_file = open('job.md', 'a', encoding='UTF-8')

# 清空文件内容

dict_file.seek(0)

dict_file.truncate()

dict_file.write('| 岗位 | 区域 | 薪资 | 年限信息 | 公司名称 | 公司信息 | 链接 |')

dict_file.write('\n| --- | --- | --- | --- | --- | --- | --- |')

# 分页爬取数据

for page in page_list:

print('开始爬取第' + str(page) + '页数据')

boss_url = self.base_url + str(self.position) + '&page=' + str(page) + '&ka=page-' + str(page)

# F12打开调试模式,手动刷新网页获取cookie,然后替换

if page < 4:

cookie_val = 'lastCity=101280600; __zp_seo_uuid__=d59649f5-bc8a-4263-b4e1-d5fb1526ebbe; __c=1592469667; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1592469673; __l=l=%2Fwww.zhipin.com%2Fshenzhen%2F&r=https%3A%2F%2Fwww.google.com%2F&friend_source=0&friend_source=0; toUrl=https%3A%2F%2Fwww.zhipin.com%2F%2Fjob_detail%2F3f35305467e161991nJ429i4GA%7E%7E.html; __a=43955211.1592469667..1592469667.39.1.39.39; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1592530438; __zp_stoken__=7f3aaPCVBFktLe0xkP21%2BJSFCLWILSwx7NEw4bVJkRx8pdBE3JGNmWjVwdx5PXC8rHmN%2BJB0hX1UvTz5VPyMmOhIVHBglVzoxJQIdLQtKR3ZFBFIeazwOByVndHwXBAN%2FXFo7W2BffFxtXSU%3D; __zp_sseed__=Ykg0aQ3ow1dZqyi9KmeVnWrqZXcZ32a4psiagwqme3M=; __zp_sname__=93bf4835; __zp_sts__=1592530479301'

elif page < 7:

cookie_val = 'lastCity=101280600; __zp_seo_uuid__=d59649f5-bc8a-4263-b4e1-d5fb1526ebbe; __c=1592469667; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1592469673; __l=l=%2Fwww.zhipin.com%2Fshenzhen%2F&r=https%3A%2F%2Fwww.google.com%2F&friend_source=0&friend_source=0; toUrl=https%3A%2F%2Fwww.zhipin.com%2F%2Fjob_detail%2F3f35305467e161991nJ429i4GA%7E%7E.html; __a=43955211.1592469667..1592469667.39.1.39.39; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1592530438; __zp_stoken__=7f3aaPCVBFktLe0xkP21%2BJSFCLWILSwx7NEw4bVJkRx8pdBE3JGNmWjVwdx5PXC8rHmN%2BJB0hX1UvTz5VPyMmOhIVHBglVzoxJQIdLQtKR3ZFBFIeazwOByVndHwXBAN%2FXFo7W2BffFxtXSU%3D; __zp_sseed__=Ykg0aQ3ow1dZqyi9KmeVnWrqZXcZ32a4psiagwqme3M=; __zp_sname__=93bf4835; __zp_sts__=1592530514188'

elif page < 10:

cookie_val = 'lastCity=101280600; __zp_seo_uuid__=d59649f5-bc8a-4263-b4e1-d5fb1526ebbe; __c=1592469667; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1592469673; __l=l=%2Fwww.zhipin.com%2Fshenzhen%2F&r=https%3A%2F%2Fwww.google.com%2F&friend_source=0&friend_source=0; toUrl=https%3A%2F%2Fwww.zhipin.com%2F%2Fjob_detail%2F3f35305467e161991nJ429i4GA%7E%7E.html; __a=43955211.1592469667..1592469667.40.1.40.40; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1592530479; __zp_stoken__=7f3aaPCVBFktLCT4uVVV%2BJSFCLWIVPWZyNUk4bVJkR25XXHVeZWNmWjVwd286Sm83HmN%2BJB0hX1UvBiBVRyt9IWQOcRtWSk83fAsfJAtKR3ZFBE5efUl%2FByVndHwXRQN%2FXFo7W2BffFxtXSU%3D; __zp_sseed__=Ykg0aQ3ow1dZqyi9KmeVnd/9vyiSRHrJFoMai+azsb8=; __zp_sname__=93bf4835; __zp_sts__=1592530496863'

else:

cookie_val = 'lastCity=101280600; __zp_seo_uuid__=d59649f5-bc8a-4263-b4e1-d5fb1526ebbe; __c=1592469667; __g=-; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1592469673; __l=l=%2Fwww.zhipin.com%2Fshenzhen%2F&r=https%3A%2F%2Fwww.google.com%2F&friend_source=0&friend_source=0; toUrl=https%3A%2F%2Fwww.zhipin.com%2F%2Fjob_detail%2F3f35305467e161991nJ429i4GA%7E%7E.html; __a=43955211.1592469667..1592469667.41.1.41.41; __zp_stoken__=7f3aaPCVBFktLc1t4VTp%2BJSFCLWJscnlxSgw4bVJkRw9tLB4pb2NmWjVwdwwgc2l7HmN%2BJB0hX1UvGFZVTH0OdhQQfwxfOyoieW8cOgtKR3ZFBAJYRFMcByVndHwXTwN%2FXFo7W2BffFxtXSU%3D; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1592530497; __zp_sseed__=Ykg0aQ3ow1dZqyi9KmeVnSZKsrhFUU/CYntJcRoFki4=; __zp_sname__=93bf4835; __zp_sts__=1592530514188'

html = self.get_url_html(boss_url, cookie_val)

soup = BeautifulSoup(html, 'html.parser')

# 招聘职位列表

job_list = soup.select('.job-list ul li')

for job_li in job_list:

# 单条职位信息

url = self.domain + job_li.select('.job-title a')[0].attrs['href']

title = job_li.select('.job-title a')[0].get_text()

area = job_li.select('.job-title .job-area')[0].get_text()

salary = job_li.select('.job-limit .red')[0].get_text()

year = job_li.select('.job-limit p')[0].get_text()

company = job_li.select('.info-company h3')[0].get_text()

industry = job_li.select('.info-company p')[0].get_text()

info = {

'title': title,

'area': area,

'salary': salary,

'year': year,

'company': company,

'industry': industry,

'url': url

}

print(info)

# 写入职位信息

info_demo = '\n| %s | %s | %s | %s | %s | %s | %s |'

dict_file.write(info_demo % (title, area, salary, year, company, industry, url))

dict_file.close()

# 程序主入口

if __name__ == '__main__':

# 实例化

job_name = input('请输入职位关键字:').strip()

if job_name == '':

print('关键字为空,请重新尝试')

exit(0)

gl = GetBossData(job_name)

# 执行脚本

gl.run()

boss直聘python_python分析BOSS直聘的某个招聘岗位数据相关推荐

  1. python分析BOSS直聘的某个招聘岗位数据

    前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我给大 ...

  2. Python分析BOSS直聘的某个招聘岗位数据!简单!

    前言 毕业找工作,在职人员换工作,离职人员找工作--不管什么人群,应聘求职,都需要先分析对应的招聘岗位,岗位需求是否和自己匹配,常见的招聘平台有:BOSS直聘.拉钩招聘.智联招聘等,我们通常的方法都是 ...

  3. 爬取腾讯招聘岗位薪资,分析互联网岗位需求

    此次数据来源于腾讯招聘,仅作参考使用,如有侵权,请联系我740449043@qq.com,会立即删除 此次使用scrapy框架完成,首先,通过浏览器进入腾讯招聘的页面,因为需求不一样,所以抓包抓到的u ...

  4. Python爬虫+可视化分析技术实现招聘网站岗位数据抓取与分析推荐系统

    程序主要采用Python 爬虫+flask框架+html+javascript实现岗位推荐分析可视化系统,实现工作岗位的实时发现,推荐检索,快速更新以及工作类型的区域分布效果,关键词占比分析等. 程序 ...

  5. boss直聘python_爬Boss直聘,分析2019下半年Python工作现状

    引子 要说在当今的编程圈,找10位程序猿询问下当前世界上最好的语言是哪个,那必须是 PHP(强迫症)!但是如果你询问当今最火爆的语言是哪个,那么80%的小伙伴儿会毫不犹豫的告诉你,是 Python! ...

  6. 20230519从UI的角度分析猎聘干不过BOSS直聘

    20230519从UI的角度分析猎聘干不过BOSS直聘 2023/5/19 18:25 https://www.zhipin.com/web/geek/chat BOSS直聘 https://www. ...

  7. 使用python爬取BOSS直聘岗位数据并做可视化(Boss直聘对网页做了一些修改,现在的代码已经不能用了)

    使用python爬取BOSS直聘岗位数据并做可视化 结果展示 首页 岗位信息 岗位详情 薪资表 学历需求 公司排名 岗位关键词 福利关键词 代码展示 爬虫代码 一.导入库 二.爬取数据 1.爬取数据代 ...

  8. BOSS直聘推出“百万BOSS拾亿”计划 将提供10亿商业产品补贴

    [TechWeb]7月19日消息,日前,互联网招聘平台BOSS直聘发布"百万BOSS拾亿"计划,针对首次在平台上招募人才的企业一把手提供总价值10亿元的商业产品资源扶持. 据介绍, ...

  9. Python爬虫实战,pytesseract模块,Python实现BOOS直聘拉勾网岗位数据可视化

    前言 利用Python实现BOOS直聘&拉勾网岗位数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块 pyspider模 ...

最新文章

  1. 针对智能车声标组的声音定位方案研究
  2. PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索
  3. linux css 工具,7个Linux和Ubuntu下的免费CSS编辑器
  4. javascript实现的一个信息提示的小功能/
  5. 传智播客 Html基础知识学习笔记
  6. 从设计者的角度解读ThreadLocal
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的高校排课系统
  8. 深度学习入行门槛太低,不开心!
  9. Oracle 高 Version counts 问题说明
  10. Effective C++条款05:了解C++默默编写并调用哪些函数
  11. 最快的 Hexo 博客搭建方法
  12. java控制台贪食蛇_java中的贪食蛇例程
  13. 浏览器自动转到外国服务器,通过HSTS实现浏览器自动跳转https(非服务器响应跳转)...
  14. 电机学Matlab仿真代码
  15. LDR6290-QFN28 做Type-C台式显示器 一线通大功率PD3.0 快充与在线升级的运用
  16. 洛古 P1926 小书童——刷题大军
  17. 长沙含浦大道与云栖_集团动态
  18. lmageNet 数据集简介
  19. PIC16F887 单片机 PROTEUS 仿真 C程序 可存储电子琴 PIC
  20. OS_process_sync_producercomsumer进程同步/互斥/信号量管程:临界资源/临界区:生产者和消费者问题(缓冲池(缓冲区)问题)

热门文章

  1. C语言永久不会过时?
  2. qq浏览器打开word 技术原理_无需安装阅读器,PDF还可以这样打开,涨姿势了
  3. 华为开发者大会主题演讲:抖音短视频网络性能优化实践
  4. 学习三极管的原理和作用
  5. Vue3 使用expose让父组件直接修改子组件的值
  6. 利用plant simulation模拟交通信号灯控制小车通行
  7. Android 模仿flabby bird游戏开发
  8. BUCK降压电路PCB布局布线
  9. 小技巧 - 禁止复制的网站如何破解复制功能(知乎,360图书馆)?
  10. 蜂鸟E203图像识别--未完待续