【爬虫系列】使用Selenium模块采集招聘网站的职位信息(1)

这篇具有很好参考价值的文章主要介绍了【爬虫系列】使用Selenium模块采集招聘网站的职位信息(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上篇演示使用了 Request 模块采集智联招聘网站 PC 端网页的招聘信息,结果遇到了比较隐蔽的反爬限制(当时还不清楚什么原因导致的),看来使用该模块这条路暂时走不通了,打算换用 Selenium 模块试试,并尝试寻找该网站反爬限制的具体原因

一、环境准备

  • Google 浏览器及 chromedriver.exe 驱动插件;
  • 支持 Python 编程的编辑器(比如 PyCharm);
  • pip 下载 selenium、BeautifulSoup、csv 等模块;

注意:谷歌浏览器的驱动插件的安装和验证,在爬虫入门做过介绍,此处不再说明了。

二、使用 Selenium 模块

当选取目标网页后,最重要的是进行网页结构的分析,从而定位出目标元素。上篇已经做过了具体的分析,这里不再重复叙述了,而是直接使用 selenium 模块实现数据采集,并尝试寻找之前存在的反爬原因。

主体方法的思路:

  • 使用 selenium 模块的 webdriver 驱动库模拟打开浏览器;
  • 发送 get 请求,访问智联招聘在杭州招聘 Python 职位的第一页地址(暂不使用多个窗口的切换);
  • 智能等待 10s 后,获取第一页的网页源代码,并写入 txt 文件保存;
  • 接着就是解析和定位网页元素了,这块的步骤和方式和以前一样,提取到目标数据后写入csv文件保存,最后退出并关闭浏览器。

测试爬取第一页,演示如下:

def selenium_zl(url, savePath, results, fileType):
    browser = webdriver.Chrome()
    browser.get(url) # https://sou.zhaopin.com/?jl=653&kw=Python
    browser.implicitly_wait(10)
    html = browser.page_source
    html2txt(html, "1", savePath)
    parser_html_by_bs(html, "1", results, fileType, savePath)
    print('爬取页面并解析数据完毕,棒棒哒.....................................')
    browser.quit()

txt 文件内容分析:

当拿到了网页源代码,就可以开始验证保存的 html 网页是不是采集到了第一页数据,我随便搜索了"合码控股"关键字,在 txt 文件里竟然不存在啊,如下:

requests+selenium爬取智联招聘,Python,Python爬虫,selenium,session访问限制

快要怀疑人生了?!看来和选择的模块是没有多大关系啊。

山重水复,柳暗花明:

重新理了一下思路,我把解析网页和退出浏览器的代码暂时注释掉,然后增加浏览器的点击代码,此时仿佛看到了一些不一样的东西,代码如下:

requests+selenium爬取智联招聘,Python,Python爬虫,selenium,session访问限制

此时,模拟浏览器没有退出,可以看到第一页的页面内容,如下:

requests+selenium爬取智联招聘,Python,Python爬虫,selenium,session访问限制

到这里,似乎知道为什么了?原来是被 Session 访问限制啊,将模拟浏览器的页面翻到最前面,就明白了,如下所示:

requests+selenium爬取智联招聘,Python,Python爬虫,selenium,session访问限制

这真是太折腾人了,现在反思一下,在之前分析的时候,我已经在浏览器里已经做过手动登录了,为什么使用爬虫代码的时候还要登录呢?!看来不能想当然啊,这下明白了怎么回事之后,就可以针对性的绕过。

道高一尺,魔高一丈:

如果被 Session 访问限制的话,在发起请求之前,创建 Session 会话登陆就行了。然而,事情并没那么简单啊,智联招聘的 PC 端网页只允许手机号 + 短信验证码的方式进行登录!!!顿时感到很无语,这又极大的增加爬取方的爬取难度,哎,心真累!

经过一番研究和测试,目前大致有两种可行的解决方案:

  • 一是,想办法将手机上的验证码转发到某个第三方平台,然后,自动化爬虫代码再去该平台的服务器上去请求获取。
  • 二是,先进行手动登录网站,通过抓取已登录状态的 cookie,在自动化爬虫代码里使用该 cookie 模拟登录。

第一种方案,难度较大,需要有不少的知识储备才行。比如,需要了解监听手机短信的收发机制和熟悉 Flask 框架的使用,或者干脆使用打码平台,或者自己实现深度学习算法等不同的方式。考虑到安全性,以及实现起来比较复杂,哈哈哈,顿时被劝退了,目前自己的知识体系和储备还不足,后面再进行深入研究吧。

第二种方案,难度稍低,但需要熟悉 HTTP 通讯方面的一些知识。这种方式简单可行,建议使用,因此,打算在下篇将重点说明如何绕过短信验证码实现登录的。

三、小结

至此,困扰已久的问题原因终于找到了,原来还是网站的反扒限制啊!特此记录一下。

接下来将继续研究该问题的解决方法,并实现之前的目标,下篇将总结和梳理,就这样。文章来源地址https://www.toymoban.com/news/detail-828949.html

到了这里,关于【爬虫系列】使用Selenium模块采集招聘网站的职位信息(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

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

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

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

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

    2024年02月11日
    浏览(10)
  • 【小5聊】Python3 使用selenium模块实现简单爬虫系列一

    【小5聊】Python3 使用selenium模块实现简单爬虫系列一

    第一次听说Python还是在工作的时候,还是一位女生在用,当时她说可以用来处理excel文档,特别是一些统计分析。第二次让我真正进入python世界,还是在一次C站举办的大赛上。聊聊你是因为什么机缘巧合进入到python圈的呢?不妨留言说说 本期主要是聊聊,我接触到的selenium模

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

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

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

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

    智联招聘 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)
  • python爬取招聘网站数据

    这段代码是使用Selenium自动化测试模块进行网页爬取的示例代码。它通过模拟人的行为在浏览器中操作网页来实现爬取。具体的流程如下: 导入所需的模块,包括Selenium、时间、随机、csv等模块。 打开浏览器,创建一个Chrome浏览器实例。 设置要爬取的页数范围。 循环遍历每

    2024年02月02日
    浏览(11)
  • 大数据项目实战-招聘网站职位分析

    大数据项目实战-招聘网站职位分析

    目录          第一章:项目概述 1.1项目需求和目标 1.2预备知识 1.3项目架构设计及技术选取 1.4开发环境和开发工具 1.5项目开发流程 第二章:搭建大数据集群环境 2.1安装准备 2.2Hadoop集群搭建 2.3Hive安装 2.4Sqoop安装 第三章:数据采集 3.1知识概要 3.2分析与准备 3.3采集网页数

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

    SQL 招聘网站岗位数据分析

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

    2024年02月05日
    浏览(15)
  • 基于python重庆招聘数据爬虫采集系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月23日
    浏览(13)
  • 基于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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包