以下是Python代码,用于爬取智联招聘网站上的岗位信息,并将数据保存到Excel表中。

首先,我们需要安装并导入一些必要的库和模块:

import requests
from bs4 import BeautifulSoup
import openpyxl

接下来,我们需要定义一个函数,用于从网站上获取岗位信息:

def get_jobs(keyword, pages):
    # 定义请求头
    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'}
    # 定义岗位信息列表
    jobs_list = []
    # 循环获取每一页的岗位信息
    for page in range(1, pages + 1):
        # 构造请求链接
        url = f'https://sou.zhaopin.com/?p={page}&jl=489&kw={keyword}&kt=3'
        # 发送请求
        response = requests.get(url, headers=headers)
        # 解析HTML
        soup = BeautifulSoup(response.content, 'html.parser')
        # 获取岗位信息节点列表
        job_nodes = soup.find_all('div', class_='joblist-box__item')
        # 循环处理每个岗位信息节点
        for job_node in job_nodes:
            # 获取岗位名称
            job_name = job_node.find('div', class_='joblist-box__title').find('a').text.strip()
            # 获取公司名称
            company_name = job_node.find('div', class_='joblist-box__jobname').find('a').text.strip()
            # 获取工作地点
            location = job_node.find('div', class_='joblist-box__location').text.strip()
            # 获取薪资范围
            salary = job_node.find('div', class_='joblist-box__jobsalary').text.strip()
            # 获取发布时间
            publish_time = job_node.find('div', class_='joblist-box__jobstat').find_all('span')[1].text.strip()
            # 将岗位信息添加到列表中
            jobs_list.append([job_name, company_name, location, salary, publish_time])
    # 返回岗位信息列表
    return jobs_list

上述函数接受两个参数:keywordpages。其中,keyword 是我们要搜索的关键词,pages 是我们要获取的页面数。函数返回一个列表,其中包含每个岗位的名称、公司名称、工作地点、薪资范围和发布时间。

接下来,我们需要将数据保存到 Excel 表中。我们可以定义一个函数来完成此任务:

def save_to_excel(jobs_list, filename):
    # 创建 Excel 工作簿
    workbook = openpyxl.Workbook()
    # 获取默认的工作表
    worksheet = workbook.active
    # 设置表头
    worksheet.cell(row=1, column=1, value='岗位名称')
    worksheet.cell(row=1, column=2, value='公司名称')
    worksheet.cell(row=1, column=3, value='工作地点')
    worksheet.cell(row=1, column=4, value='薪资范围')
    worksheet.cell(row=1, column=5, value='发布时间')
    # 循环写入数据
    for row in range(2, len(jobs_list) + 2):
        worksheet.cell(row=row, column=1, value=jobs_list[row - 2][0])
        worksheet.cell(row=row, column=2, value=jobs_list[row - 2][1])
        worksheet.cell(row=row, column=3, value=jobs_list[row - 2][2])
        worksheet.cell(row=row, column=4, value=jobs_list[row - 2][3])
        worksheet.cell(row=row, column=5, value=jobs_list[row - 2][4])
    # 保存 Excel 工作簿
    workbook.save(filename)

上述函数接受两个参数:jobs_listfilename。其中,jobs_list 是我们要保存的岗位信息列表,filename 是我们要保存的 Excel 文件的文件名。

最后,我们可以编写主程序,调用上述两个函数来实现我们的任务:

if __name__ == '__main__':
    # 获取岗位信息
    jobs_list = get_jobs('Python', 2)
    # 将岗位信息保存到 Excel 表中
    save_to_excel(jobs_list, 'jobs.xlsx')

上述代码会搜索关键词为 Python 的岗位信息,并获取前两页的数据。然后,它将数据保存到名为 jobs.xlsx 的 Excel 表中。

完整代码如下:

用Python写一个程序爬取智联招聘网站上的岗位信息并保存到Excel表里

原文地址: https://www.cveoy.top/t/topic/bq37 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录