Python爬取boss直聘关于python招聘数据,高薪总是让人那么羡慕

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

开发工具

  • Python 3.6.5
  • Pycharm
import requests
import parsel
import csv
import time

相关模块可用pip命令安装

网页数据分析

在这里插入图片描述

在这里插入图片描述
如图所示,这些数据都是今天要获取的内容

一、打开开发者工具

在这里插入图片描述
可以看网页给我们返回的数据,复制数据,到response里面搜索,看请求网页返回的数据当中是否有需要的数据。

import requests # pip install requests
url = 'https://www.zhipin.com/c100010000/?query=python&page=1&ka=page-1'
headers = {}  # headers 复制开发者工具当中的即可
response = requests.get(url=url, params=params, headers=headers)
print(response.text)

二、分析网页数据结构

选择开发者工具中的 Elements 选择箭头 选择网页的数据,会自动跳转到网页标签中,告诉你这个数据是在网页标签里面的哪个位置。
在这里插入图片描述
如上图所示,每个企业招聘的数据都在 li 标签里面,我们只需要通过数据解析,提取所需要的数据即可。

import parsel # pip install parsel
response.encoding = response.apparent_encoding
selector = parsel.Selector(response.text)
lis = selector.css('#main .job-list ul li') # 获取所有li标签
'''
通过获取网页中所有li标签,然后循环遍历,再分别提取li标签中所需要的数据
'''
dit = {}
# 创建一个字典接受数据,方便后续保存数据
for li in lis:
    title = li.css('.job-name a::attr(title)').get()  # 标题
    dit['标题'] = title
    area = li.css('.job-area::text').get()  # 地区
    dit['地区'] = area
    xz_info = li.css('.red::text').get()    # 薪资
    dit['薪资'] = xz_info
    xl_list = li.css('.job-limit p::text').getall()     # 学历经验
    xl_str = '|'.join(xl_list)
    dit['学历经验'] = xl_str
    js_list = li.css('.tags span::text').getall()   # 技能要求
    js_str = '|'.join(js_list)
    dit['技能要求'] = js_str
    company = li.css('.company-text .name a::attr(title)').get()    # 公司名字
    dit['公司名字'] = company
    gz_info = li.css('.company-text p::text').getall()    # 工作类型
    gz_str = '|'.join(gz_info)
    dit['工作类型'] = gz_str
    fl_info = li.css('.info-desc::text').get()  # 福利
    dit['福利'] = fl_info

三、数据保存

import csv
# 创建文件
f = open('Boos直聘数据.csv', mode='a', encoding='utf-8-sig', newline='') 
# 表头信息
csv_writer = csv.DictWriter(f, fieldnames=['标题', '地区', '薪资', '学历经验', '技能要求', '公司名字', '工作类型', '福利']) 
# 写入表头
csv_writer.writeheader() 
'''
然后再把之前创建的接受数据的字典,保存即可
'''
csv_writer.writerow(dit) # 写到for循环内

四、多页爬取

'''
https://www.zhipin.com/c100010000/?query=python&page=1&ka=page-1
https://www.zhipin.com/c100010000/?query=python&page=2&ka=page-2
https://www.zhipin.com/c100010000/?query=python&page=3&ka=page-3
'''

每一页的改变都是通过page参数的变化~·

for page in range(1, 10):
	url = 'https://www.zhipin.com/c100010000/?query=python&page={}&ka=page-{}'.format(page)

这样就可以实现翻页爬取的效果了!

实现效果

在这里插入图片描述
在这里插入图片描述
这就是文章以上所有内容了~

喜欢的话,可以点赞哈 O(∩_∩)O~~

有不懂的地方也可以私信我或者评论

  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我了解你的问题了。这是一个非常实用的问题,下面我将为你详细介绍Python爬取boss直聘招聘信息的实现方法。 首先,我们需要准备以下工具和库: - Python 3.6 或以上版本 - requests 库 - BeautifulSoup 库 - pandas 库 接下来,我们按照以下步骤进行实现: 1. 导入需要的库: ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. 定义一个函数,用于获取页面内容: ```python def get_page(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') return soup ``` 3. 定义一个函数,用于获取职位信息: ```python def get_jobs(soup): job_list = [] jobs = soup.select('.job-list ul li .job-primary .info-primary') for job in jobs: job_name = job.select('.job-title')[0].text.strip() company_name = job.select('.company-text .name')[0].text.strip() salary = job.select('.job-limit .red')[0].text.strip() job_info = job.select('.job-title')[0].attrs['href'] job_detail = get_job_detail(job_info) job_list.append([job_name, company_name, salary, job_detail]) return job_list ``` 4. 定义一个函数,用于获取职位的详细信息: ```python def get_job_detail(url): soup = get_page(url) job_detail = soup.select('.job-detail .job-sec')[0].text.strip().replace('\n', '') return job_detail ``` 5. 定义一个函数,用于保存数据到本地CSV文件: ```python def save_to_csv(job_list): df = pd.DataFrame(job_list, columns=['职位名称', '公司名称', '薪资待遇', '职位描述']) df.to_csv('boss直聘招聘信息.csv', index=False) ``` 6. 最后,我们编写主程序: ```python if __name__ == '__main__': url = 'https://www.zhipin.com/c101280100/?query=python&page=1' soup = get_page(url) job_list = get_jobs(soup) save_to_csv(job_list) ``` 在运行程序之前,我们需要先确定爬取的页面URL和参数。在本例中,我们爬取的是boss直聘上“python”职位的招聘信息,因此URL为“https://www.zhipin.com/c101280100/?query=python&page=1”,其中“c101280100”是城市代码,这里是上海的城市代码,可以根据需要修改。在“query”参数中输入关键词“python”,“page”参数表示页码。 运行程序后,会将爬取到的职位信息保存到本地的CSV文件中,文件名为“boss直聘招聘信息.csv”。 以上就是Python爬取boss直聘招聘信息的实现方法,希望对你有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值