Python实现爬取前程无忧网站

Python网络爬虫 一,引言 1,1 爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序

本文包含相关资料包-----> 点击直达获取<-------

Python网络爬虫

一、引言

1.1 爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

为什么我们要使用爬虫

互联网大数据时代,给予我们的是生活的便利以及海量数据爆炸式的出现在网络中。

过去,我们通过书籍、报纸、电视、广播或许信息,这些信息数量有限,且是经过一定的筛选,信息相对而言比较有效,但是缺点则是信息面太过于狭窄了。不对称的信息传导,以致于我们视野受限,无法了解到更多的信息和知识。

互联网大数据时代,我们突然间,信息获取自由了,我们得到了海量的信息,但是大多数都是无效的垃圾信息。

例如新浪微博,一天产生数亿条的状态更新,而在百度搜索引擎中,随意搜一条——减肥100,000,000条信息。

在如此海量的信息碎片中,我们如何获取对自己有用的信息呢?

答案是筛选!

通过某项技术将相关的内容收集起来,在分析删选才能得到我们真正需要的信息。

这个信息收集分析整合的工作,可应用的范畴非常的广泛,无论是生活服务、出行旅行、金融投资、各类制造业的产品市场需求等等……都能够借助这个技术获取更精准有效的信息加以利用。

网络爬虫技术,虽说有个诡异的名字,让能第一反应是那种软软的蠕动的生物,但它却是一个可以在虚拟世界里,无往不前的利器。

1.2 爬虫准备工作

我们平时都说Python爬虫,其实这里可能有个误解,爬虫并不是Python独有的,可以做爬虫的语言有很多例如:PHP,JAVA,C#,C++,Python,选择Python做爬虫是因为Python相对来说比较简单,而且功能比较齐全。

二、课程设计目的

在即将面临毕业季找工作难的问题,恰逢这次课程设计,于是想要通过爬虫爬取前程无忧这个网站的招聘信息,并对其进行数据统计,找出适合自己的工作等

2.1 课程设计内容

本次课设主要由两部分组成:

  1. 首先是网站数据的爬取,并且将一些有用的信息存在一个CSV文件中,由于网站较大,所以我们只是单纯爬取符合本专业的职位,一共爬取了8000多条数据信息。

  2. 然后是使用pandas库对这些数据进行分析出来,把岗位详细,公司名称,公司详情,薪资,工作地点,发布日期,更新日期,公司类型,行业,工作经验要求,学历,招聘人数等信息保存到CSV中

2.2 背景知识

“前程无忧”(Nasdaq: JOBS)是国内一个集多种媒介资源优势的专业人力资源服务机构,创始人为甄荣辉。

它集合了传统媒体、网络媒体及先进的信息技术,加上一支经验丰富的专业顾问队伍,提供包括招聘猎头、培训测评和人事外包在内的全方位专业人力资源服务,全国25个城市设有服务机构。

2004年9月,前程无忧成为第一个在美国纳斯达克上市的中国人力资源服务企业,是中国最具影响力的人力资源服务供应商之一。

前程无忧成立于1999年,是一家网络招聘服务提供商,网站目标有两大部分:致力于为积极进取的白领阶层和专业人士提供更好的职业发展机会。同时,网站致力于为企业搜寻、招募到最优秀的人才。

提供报纸招聘、网络招聘、招聘猎头、培训测评和人事外包在内的人力资源服务,最初全国包括香港在内的26个城市设有服务机构,已经增加至104个城市。

经过一个学期python课程的学习,我对python语言也有了一定程度的掌握,特别是python丰富的第三方库,可以使得我更加容易的完成对该网络招聘信息的批量爬取与分析。

三、设计步骤与方法

实验环境:

Windows 10 pycharm 2021.2 python 3.9

3.1 步骤1,数据的爬取 requests,re

我们打开chromd 谷歌浏览器的开发人员工具查看该信息在网站时获取到的请求信息

发现其实它是一个静态网站

再通过翻页去查询它们的规律发现,其实每翻一页,这个数字就会加1,那么就可以构建出整个网站的页数,去批量爬取所有页数的招聘信息

构建页数的代码如下:

每次这个传递一个参数的时候,对应的url也会更新,这样就可以构造出全部的url方便我们爬取

因为上面说到的这个网站是一个静态网站,所以内容都是全部存放到HTML页面的,那么我们获取HTML的源码,那么对应的就是获取招聘信息的内容

通过这两句便是获取每一页的html源码信息

因为他是静态的,在获取源码之后我们还得用re来进行定位

正则表达式(英语:Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

具体的代码如下:

其中因为有很多数据在获取的图中并不干净,所以我们还得去构造函数对获取到的这些数据一定程度的清洗

对于获取URL的

对于其他信息的

对于获取薪资的

最后将内容用for循环依次写入csv文件中,

关于反爬虫,我们这边是通过构建headers

来伪造成浏览器去爬取对应的内容

然后再用session来构建cookie,减轻爬取数据的时候对服务器造成的压力

最后每爬取一页信息

便用time.sleep缓存一秒,防止爬取过快被系统检测出是爬虫程序

3.2 步骤2:数据处理pandas

在获取全部信息之后

我们先是创建一个dataframe用来保存数据

然后再依次把对应的数据内容传入到dataframe中

再用防错机制把获取到的数据一一保存到CSV中

最后数据的样式如下:

四、设计结果及分析

通过上面的数据集可以清晰的认知关于招聘python岗位的要求,任职条件,招聘人数,以及有多少岗位数量等这些非常重要的信息,也清晰的认知自己的能力不足,以及和别人之间的差异,还是有多虚心学习,争取在毕业的时候能找到一份自己满意的工作

五、问题及心得体会

本次课程完成的过程中,遇到了许多问题,大部分问题都通过自己的debug或者网络教程解决。

关于前程无忧爬取的教程网上也有很多,不过以较为老旧,经过了解,前程无忧在去年就关闭了这些网络教程所使用的API,现在访问这些URL只能看到500,所以只能通过实际访问中查看网络请求寻找爬取实际数据的入口。

本次的课程设计巩固和加深了我对python爬取信息知识的理解,提高了综合运用所学知识的能力,增强了根据课程需要选学参考资料,查阅手册、图表和文献资料的自学能力。

同时,在本次课程中,我通过实际项目,更加熟悉python的使用,并且体会到它的强大之处。首先它易于扩展,在pypi商店和GitHub上,有许多免费开源的包提供我们直接使用,这大大减少了我们的工作量,并且方便我们实行现水平下难以实行的功能。其次,它的数据结构类型很丰富,列表,字典,dataframe等数据结构大大方便了我们的使用,不过,在数据处理中,也体会到python的运行速度逊于C、C++的方面,所以也学会了通过优化算法减少时间复杂度来给程序提速。

参考文献

  • 金融信息实时发布系统的设计与实现(东北大学·伦健)
  • 搜索引擎中网络爬虫及结果聚类的研究与实现(中国科学技术大学·梁萍)
  • 主题网络爬虫的研究和实现(武汉理工大学·林捷)
  • 基于领域的网络爬虫技术的研究与实现(武汉理工大学·谭龙远)
  • 分布式智能网络爬虫的设计与实现(中国科学院大学(工程管理与信息技术学院)·何国正)
  • 基于标记模板的分布式网络爬虫系统的设计与实现(华中科技大学·杨林)
  • 主题网络爬虫的研究与设计(南京理工大学·朱良峰)
  • 网络爬虫技术在云平台上的研究与实现(电子科技大学·刘小云)
  • 网络爬虫技术在云平台上的研究与实现(电子科技大学·刘小云)
  • 网络爬虫技术在云平台上的研究与实现(电子科技大学·刘小云)
  • 网络舆情爬虫系统的设计与实现(厦门大学·李海燕)
  • Web对象提取检索系统的设计与实现(北京大学·刘冠军)
  • 基于redis的分布式自动化爬虫的设计与实现(华中科技大学·曾胜)
  • 主题网络爬虫的研究和实现(武汉理工大学·林捷)
  • 基于网络爬虫的基金信息抽取与分析平台(华南理工大学·陈亮华)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计驿站 ,原文地址:https://bishedaima.com/yuanma/36137.html

相关推荐

  • 使用 python 进行音频处理

    使用 python 进行音频处理 实验目的及实验内容 (本次实验所涉及并要求掌握的知识;实验内容;必要的原理分析) 实验目的: 使用 python 进行音频处理 实验内容: 学习音频相关知识点
    2024年05月14日
    3 1 1
  • 基于SpringBoot的简易秒杀系统

    【秒杀系统】零基础上手秒杀系统(一):防止超卖 【秒杀系统】零基础上手秒杀系统(二):令牌桶限流 + 再谈超卖 【秒杀系统】零基础上手秒杀系统(三):抢购接口隐藏 + 单用户限制频率 【秒杀系统】零基础上手秒杀系统(四):缓存与数据库双写问题的争议 【秒杀系统】零基础上手秒杀系统番外篇:阿里开源 MySQL 中间件 Canal 快速入门 【秒杀系统】零基础上手秒杀系统(五):如何优雅的实现订单异步处理 【秒杀系统】从零打造秒杀系统(一):防止超卖 前言 大家好
    2024年05月14日
    6 1 1
  • 基于JSP和MySql的文章发布系统的设计与实现

    基于JSP和MySql的文章发布系统的设计与实现 摘 要 随着计算机技术的迅速发展,网络正以一种前所未有的冲击力影响着人类的生产和生活,网络的快速发展
    2024年05月14日
    8 1 3
  • 基于SSH框架的在线图书售卖网站在线图书商城网站

    这是一个🔥🔥基于SSH框架的在线图书售卖网站在线图书商城网站🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 网络图书销售开发技术栈为SSH项目
    2024年05月23日
    14 1 2
  • 基于SpringBoot框架的球队训练信息管理系统

    这是一套采用Java语言编写的🔥🔥SpringBoot为核心的球队训练信息管理系统源代码,该项目运用了SpringBoot框架,并结合Vue技术进行开发,支持Idea或Eclipse等开发工具
    2024年05月23日
    26 1 4
  • 基于SSM和MySQL实现的乒乓球比赛管理系统

    基于SSM和MySQL实现的乒乓球比赛管理系统 1,项目简介 1,1 背景分析 如今世界杯足球赛用计算机唯一指定供应商美国 Sun 公司宣布,运行1994年美国世界杯足球赛整个信息系统的 SPARCcenter~(TM)2000服务器已经安装完毕
    2024年05月14日
    5 1 2
  • 基于Python制作的记忆翻牌小游戏

    基于 Python 制作的记忆翻牌小游戏 导语 昨天看到有留言竟然说我是月更博主,我明明更新地这么勤快(心虚,jpg),看吧,昨天刚更新过,今天又来更新了
    2024年05月14日
    31 1 4
  • 基于Python实现的编译原理实验

    1,总述 MP1中完成了cool语言的lexer和parser,除了支持cool的全部语法外,在基本要求之上还可以处理很多其他错误,例如feature和formal的大小写问题
    2024年05月14日
    2 1 1
  • 基于Python实现书店销售管理系统

    书店销售管理管理子系统 一,设 计 总 说 明 现在社会随着计算机技术迅速发展与技术的逐渐成熟,信息技术已经使人们的生活发生深刻的变化,生活中的各种服务系统也使人们在生活中的联系日常销售活动方式发生了很大的变化
    2024年05月14日
    6 1 1
  • 自然语言处理之Python

    自然语言处理 期末大作业 实验环境 本次实验是在 windows10 操作系统下进行的,使用的 IDE 为 pycharm 我使用的神经网络框架搭配为 pytorch+python3
    2024年05月14日
    4 1 1

发表回复

登录后才能评论