python爬取招聘网站数据

这篇具有很好参考价值的文章主要介绍了python爬取招聘网站数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这段代码是使用Selenium自动化测试模块进行网页爬取的示例代码。它通过模拟人的行为在浏览器中操作网页来实现爬取。具体的流程如下:

  1. 导入所需的模块,包括Selenium、时间、随机、csv等模块。
  2. 打开浏览器,创建一个Chrome浏览器实例。
  3. 设置要爬取的页数范围。
  4. 循环遍历每一页的URL。
  5. 访问每一页的URL,获取网页数据。
  6. 创建一个CSV文件,设置字段名。
  7. 获取每个职位的详情页URL。
  8. 遍历每个详情页URL,发送请求获取响应数据。
  9. 使用css选择器解析响应数据,提取所需的数据内容。
  10. 将提取到的数据写入CSV文件。
  11. 打印出职位的相关信息。

        该代码的主要功能是爬取招聘网上的职位信息,包括职位名、薪资、城市、经验、学历、福利、岗位标签、公司名、详情页等信息。使用了Selenium模拟人的行为,通过使用开发者工具获取到的CSS选择器来定位和提取数据。

 文章来源地址https://www.toymoban.com/news/detail-787731.html

# 导入自动化测试模块
from selenium import webdriver
# 导入时间模块
import time
# 导入随机模块
import random
# 导入csv模块  内置模块 不需要安装
import csv
import requests
import parsel
"""
selenium: 模拟人的行为去操作浏览器
"""
# 1. 打开浏览器
driver = webdriver.Chrome()

# 设置页数范围
start_page = 0
end_page = 10  # 假设要爬取前5页的数据
for page in range(start_page, end_page):
    # 2. 访问网站
    url = f'https://www.liepin.com/zhaopin/?city=070020&dq=070020&pubTime=&currentPage={page}&pageSize=40&key=%E8%B4%A2%E5%8A%A1bp&suggestTag=&workYearCode=0&compId=&compName=&compTag=&industry=&salary=&jobKind=&compScale=&compKind=&compStage=&eduLevel=&otherCity=&sfrom=search_job_pc&ckId=vda04kszzsgxhhl7nc4fc21r5hthguv9&scene=condition&skId=vda04kszzsgxhhl7nc4fc21r5hthguv9&fkId=vda04kszzsgxhhl7nc4fc21r5hthguv9&suggestId='
    driver.get(url)
    # 隐式等待 ---> 让网页数据加载完成
    driver.implicitly_wait(10)
    time.sleep(3)

    # 创建文件
    f = open('data.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=[
        '职位名',
        '薪资',
        '城市',
        '经验',
        '学历',
        '福利',
        '岗位标签',
        '公司名',
        '详情页',
    ])
    # 写入表头
    csv_writer.writeheader()

    # 3. 获取岗位详情页url地址
    url_list = driver.find_elements('css selector', '.job-detail-box a')

    for index in url_list:
        url = index.get_attribute('href')
        print(url)
        time.sleep(random.randint(1, 2))
        """
        1. 发送请求, 模拟浏览器对 url地址 发送请求
            - 把python代码伪装成浏览器发送请求
                目的: 为了防止被反爬
        """
        # 请求url地址
        # url = 'https://www.liepin.com/job/1948917627.shtml?d_sfrom=search_prime&d_ckId=null&d_curPage=2&d_pageSize=40&d_headId=null&d_posi=1&skId=s5h3mfxh8n1c3ec3dr7nnc6d4lycb9db&fkId=s5h3mfxh8n1c3ec3dr7nnc6d4lycb9db&ckId=s5h3mfxh8n1c3ec3dr7nnc6d4lycb9db&sfrom=search_job_pc&curPage=2&pageSize=40&index=1'
        # 模拟伪装  ---> 开发者工具里面进行复制粘贴
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
        }
        # 发送请求 ->  <Response [200]> 表示请求成功
        response = requests.get(url=url, headers=headers)
        """
        2. 获取数据, 获取服务器返回响应数据
            开发者工具: response
            response.text 获取响应文本数据, 返回字符串数据类型 html字符串数据内容
        3. 解析数据, 提取我们想要的数据内容
    
            css选择器 根据标签属性提取数据内容:
        """
        # 把获取下来 html字符串数据内容 <response.text> 转成可解析对象
        selector = parsel.Selector(response.text)
        """
        .job-apply-content .name-box .name 定位标签
            - get() 获取第一个标签 就获取一个内容 返回字符串
            - getall 获取所有标签内容, 返回列表
    
        css选择器, 在系统课程 都是从头到尾讲2.5个小时才能讲完知识点内容
    
        a::text 表示 提取a标签里面文本呀
        """
        title = selector.css('.job-apply-content .name-box .name::text').get()  # 职位名
        salary = selector.css('.job-apply-content .name-box .salary::text').get()  # 薪资
        city = selector.css('.job-apply-content .job-properties span:nth-child(1)::text').get()  # 城市
        exp = selector.css('.job-apply-content .job-properties span:nth-child(3)::text').get()  # 经验
        edu = selector.css('.job-apply-content .job-properties span:nth-child(5)::text').get()  # 学历
        # 把列表合并成字符串
        labels = ','.join(selector.css('.job-apply-container-desc .labels span::text').getall())  # 福利
        job_labels = ','.join(selector.css('.tag-box ul li::text').getall())  # 职位标签
        company = selector.css('.company-info-container .company-card .content .name::text').get()  # 公司名
        job_info = '\n'.join(selector.css('.job-intro-container .paragraph dd::text').getall())  # 岗位职业
        """
        4. 保存数据, 把数据保存本地文件
            - 基本数据 保存csv表格里面
            - 岗位职责 保存文本里面
    
        """
        # 把数据写入到字典里面
        dit = {
            '职位名': title,
            '薪资': salary,
            '城市': city,
            '经验': exp,
            '学历': edu,
            '福利': labels,
            '岗位标签': job_labels,
            '公司名': company,
            '详情页': url,
        }
        # 写入数据
        csv_writer.writerow(dit)
        print(title, salary, city, exp, edu, labels, job_labels, company, job_info)

到了这里,关于python爬取招聘网站数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于Python的前程无忧、51job、智联招聘等招聘网站数据获取及数据分析可视化大全【代码+演示】

    基于Python的前程无忧、51job、智联招聘等招聘网站数据获取及数据分析可视化大全【代码+演示】

    职位标题 薪资 地区 工作年限要求 学历要求 发布时间 keyword pageNum jobRank 公司名称 公司类型 公司规模 行业 福利描述 HR标签 0 检具中级工程师(C) (MJ000656) 8千-1.2万·14薪 宣城 2年 大专 2023-12-08 04:00:38 c 1 0 上海保隆汽车科技股份有限公司 已上市 5000-10000人 汽车零配件 五险一

    2024年02月03日
    浏览(33)
  • 基于Python flask 的某招聘网站爬虫,招聘岗位可视化系统

    基于Python flask 的某招聘网站爬虫,招聘岗位可视化系统

    一、介绍 原文地址 今天为大家带来的是Python基于Flask的招聘信息爬取,招聘岗位分析、招聘可视化系统。 此系统是一个实时分析招聘信息的系统,应用Python爬虫、Flask框架、Echarts、VUE等技术实现。 本项目利用 Python 从某招聘网站抓取海量招聘数据,进行数据清洗和格式化后

    2024年02月07日
    浏览(10)
  • SQL 招聘网站岗位数据分析

    SQL 招聘网站岗位数据分析

    1.删除包含空字段的行 2.按照企业和岗位进行去重保留最新一条 3.筛选招聘地区在北上广深 4.过滤周边岗位保留任职要求包含数据的岗位 需求1:按照城市分组统计招聘总量和招聘职位数   需求2:按照企业类型进行招聘量的统计及招聘占比计算 需求3:计算岗位薪资的单位,

    2024年02月05日
    浏览(15)
  • 基于招聘网站的大数据专业相关招聘信息建模与可视化分析

    基于招聘网站的大数据专业相关招聘信息建模与可视化分析

    需要本项目的可以私信博主!!! 在大数据时代背景下,数据积累导致大数据行业的人才需求快速上升,大量的招聘信息被发布在招聘平台上。深入研究这些信息能帮助相关人士更好地理解行业动态,并对其未来发展进行预测。本文主要通过分析51job网站上的大数据职位招聘

    2024年02月09日
    浏览(13)
  • 【Django | 开发】面试招聘信息网站(美化admin站点&添加查看简历详情链接)

    【Django | 开发】面试招聘信息网站(美化admin站点&添加查看简历详情链接)

    🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 🌐 推荐一款找工作神器网站: 宝藏网站 |笔试题库|面试经验|实习招聘内推| 该文章收录专栏 ✨—【Django | 项目开发】从入门到上线 专栏—✨ 由于前文所开发的简历投递,并将简

    2023年04月20日
    浏览(27)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(三)

    大数据项目实战——基于某招聘网站进行数据采集及数据分析(三)

    第三章 数据采集 掌握 HDFS API 的基本使用 熟悉 HttpClent 爬虫的使用方法 本篇主要对要采集的数据结构进行分析以及创建编写数据采集程序的环境,为最终编写数据采集程序做准备。 在爬取网站数据前要先通过分析网站的源码结构制定爬虫程序的编写方式,以便能获取准确的

    2024年02月11日
    浏览(12)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)

    大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)

    掌握项目需求和目标 了解项目架构设计和技术选型 了解项目环境和相关开发工具 理解项目开发流程 在人力资源管理领域,网络招聘近年来早已凭借其范围广、信息量大、时效性强、流程简单而效果显著等优势,成为企业招聘的核心方式。随着大数据渐渐融入人类社会生活的

    2024年02月02日
    浏览(14)
  • 大数据项目实战——基于某招聘网站进行数据采集及数据分析(二)

    大数据项目实战——基于某招聘网站进行数据采集及数据分析(二)

    第二章 搭建大数据集群环境 了解虚拟机的安装和克隆 熟悉虚拟机网络配置和 SSH 服务配置 掌握 Hadoop 集群的搭建 熟悉 Hive 的安装 掌握 Sqoop 的安装 搭建大数据集群环境是开发本项目的基础。本篇将通过在虚拟机中构建多个Linux操作系统的方式来搭建大数据集群环境。 Hadoop本

    2024年02月11日
    浏览(10)
  • 【大数据毕设】基于Hadoop的招聘网站可视化的设计与实现(一)

    【大数据毕设】基于Hadoop的招聘网站可视化的设计与实现(一)

    博主介绍 : ✌ 全网粉丝6W+,csdn特邀作者、博客专家、大数据领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战 ✌ 🍅 文末获取项目联系 🍅 基于Hadoop的招聘网站可视化的设计与实现 摘要:现在,随着互联网网络的飞

    2024年02月10日
    浏览(18)
  • 面试 招聘网站

    智联招聘 http://www.zhaopin.com 前程无忧 http://www.51job.com 中华英才网 http://www.chinahr.com 猎聘 http://www.liepin.com BOSS直聘 http://www.zhipin.com 以上这几个网站的校招和社招模块都做的不错,建议大家认真完善这几大网站上的简历资料,有些企业没有自己的官方校招网站,会直接在这几个

    2024年02月08日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包