使用Python和Selenium进行招聘信息爬取
在当今数字化时代,数据已成为企业决策的重要依据。对于人力资源部门或求职者而言,获取最新的招聘信息至关重要。然而,手动浏览和收集招聘信息不仅耗时费力,而且效率低下。为了解决这个问题,我们可以使用Python和Selenium库来自动化这一过程,实现从招聘网站上批量爬取招聘信息。
准备工作
在开始之前,你需要确保已经安装了以下库:
Python(建议版本3.x)
Selenium
一个支持Selenium的浏览器驱动(如ChromeDriver)

全部代码

import time
from DrissionPage import ChromiumPage
import csv


def scrape_jd(shop_name, num_pages=1000):
    # 启动 ChromiumPage
    driver = ChromiumPage()
    # 访问网站
    driver.get('https://www.zhipin.com/')

    # 输入职位
    driver.ele('css:.ipt-search').input(shop_name)
    driver.ele('css:button.btn.btn-search').click()

    with open(f'{shop_name}.csv', mode='w', encoding='utf-8', newline='') as f:
        csv_writer = csv.DictWriter(f, fieldnames=['职位链接', '职位名称','薪资',
                                                   '地区', '经验学历要求','公司名称','公司简介','技术栈要求','员工福利' ])
        csv_writer.writeheader()

        for page in range(1, num_pages + 1):
            driver.wait(2)
            driver.scroll.to_bottom()
            time.sleep(3)  # 等待页面加载完成

            # 获取所有商品列表项
            lis = driver.eles('css:.job-wrapper')

            for li in lis:
                # 职位链接
                product_link = li.ele('css:a').attr('href')
                #职位名称
                job_name=li.ele('css:.job-name').text
                #薪资
                salary=li.ele('css:.salary').text
                #地区
                job_area=li.ele('css:.job-area').text
                #经验学历要求
                tag_list=li.ele('css:.list').text
                #公司名称
                company_name=li.ele('css:h3.company-name').text
                #公司简介
                company=li.ele('css:ul.company-tag-list').text
                # #技术栈要求
                # list=li.ele('css:.job-card-footer clearfix .tag-list').text
                # 获取包含技术栈的父元素
                tech_stack_element = li.ele('css:.job-card-footer .tag-list').text

                #员工福利
                info=li.ele('css:.info-desc').text

                # 将数据写入 CSV 文件
                csv_writer.writerow({
                    '职位链接':product_link,
                    '职位名称': job_name,
                    '薪资': salary,
                    '地区': job_area,
                    '经验学历要求': tag_list,
                    '公司名称': company_name,
                    '公司简介':company,
                    '技术栈要求':tech_stack_element,
                    '员工福利':info
                })

            print(f"完成第 {page} 页")
            # 翻页功能可根据页面结构调整
            next_page_btn = driver.ele('css:i.ui-icon-a-right ')
            if next_page_btn:
                next_page_btn.click()
            else:
                break

    driver.quit()

# 用户输入商品信息
shop = input("请输入你想爬取的信息:")
scrape_jd(shop)

数据样式

数据集分享

通过网盘分享的文件:boss_merged_file.csv
链接: https://pan.baidu.com/s/1AAI7i2Qmsid-KjMZhW15Ag 提取码: db69 
--来自百度网盘超级会员v1的分享

谢谢支持

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐