Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python爬虫之工作篇—寻找你的招聘信息

Python爬虫之工作篇—寻找你的招聘信息

作者头像
Python数据科学
发布于 2018-08-06 10:32:45
发布于 2018-08-06 10:32:45
6130
举报
文章被收录于专栏:Python数据科学Python数据科学

最近总被智联招聘广发骚扰,烦死个人了简直。索性点进去看了看爬虫工程师现在市场需求到底怎么样了?发展前景如何?看完了之后感觉目前还不错,根据北京来看职位需求还是蛮多的,薪资也还行,于是就对智联招聘职位信息的爬取发起了一次小小的挑战,今天给大家分享一个爬取招聘网站的工作信息,效果图如下(部分截图)。

(更多效果图在后面)

--------------------------

功能需求分析

--------------------------

主要功能需求如下:

  • 用户输入工作地点和感兴趣的职位信息;
  • 根据指定输入信息进行多线程的网页爬取;
  • 解析提取结构化的招聘信息;
  • 将数据存入指定的数据库

这里由于篇幅和时间原因,功能并没有那么复杂,但是博主会在后续加入更加丰富的功能,并与大家分享,包括:

  • ip池的加入
  • 爬取和解析效率的优化;
  • 对爬取数据进行数据分析,提供可视化的统计和简单预测;
  • 其它反爬功能

--------------------------

功能实现分析

--------------------------

明白了要完成的任务,就需要开始分析我们的目标网站了。

1. 网页爬取分析

打开智联招聘的搜索界面,输入 “爬虫” 二字为例, 如下:

然后我们通过fiddler抓包工具抓取浏览器操作时的信息如下:

  1. 职位信息输入后看到这个请求是 GET 模式,GET 请求的链接是 http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=%E7%88%AC%E8%99%AB&p=1&isadv=0
  2. 浏览器发出请求的headers头信息,copy到代码headers中。

由于浏览器正常操作下是通过点击“搜索按钮”或者“回车”来进行职位搜索的,而我们并不希望使用浏览器内核webdriver的使用来解决此问题。

因此,思路是:我们需要从发出的GET请求的URL进行分析。

在浏览器中显示的URL是这样子的,有汉字。

  • “北京” 和 “爬虫” 关键词 都以汉字形式显示。感觉这和上面蓝色的链接差不多一样啊!没错,上面的URL是北京和爬虫关键字进行编码之后的样子,而我们向服务器提交的正是上面那个编码之后的URL。
  • 后面 “p=1” 的意思是第一页,“adv=0” 经其它数字测试后没有影响,固不做改变。

好了,捋明白了。我们需要做的其实就是将我们输入的关键词汉字进行编码,然后替换掉上面蓝色URL的lj=“”和kw=“”中的内容,再用这个新的URL发出请求就OK了。

2. 网页解析分析

这是浏览器搜索之后得到的结果,从招聘信息中我们希望得到一些有用的信息。博主这里定义了五个字段信息:职位名称、反馈率、公司名称、职位月薪、工作地点。这些信息关系到你如何创建数据库表单,后面会提到。

这里博主决定使用BeautifulSoup方法解决网页的解析,那么先用F12 element看看网页的结构再说。

博主经分析后发现,其它四个信息提取方式都是一样的,但是工作名称的标签结构是有所不同的,为什么呢?

来,先看一条数据的标签,它是这样的:

再看,另一条数据的标签,是这样的:

发现有什么不同了吗?第一个工作名称的标签里有<b></b>,而第二个标签里什么都没有。

看看上面这两个名称不难发现,导致这个问题的原因其实是关键字的存在(第一个标签中有红色关键字)。

而又想到,我们正常搜索的时候一般不会输入完整的工作名称,比如我只输入 “爬虫” 二字,由于可能存在以上关键字的问题,那么标签的结果就会不同。因此,我们需要在代码解析的时候进行特殊处理,下面进行代码实现分析。

--------------------------

代码实现分析

--------------------------

由于需要将解析后的数据存入数据库,因此需要先在命令窗口创建一个数据库(也可以在Python中完成),这里简单提一下所需的操作。

  • 使用了MySQL数据库进行储存
  • 数据库表单包含了之前提到的五个字段信息

下面是具体代码的实现。

1. URL的重组实现

  • 使用了property修饰器定了函数来接收用户信息
  • 将输入信息用quote进行编码重组,生成爬取所需的目标URL

2. html下载

  • 将重新生成的URL放入函数中进行html的下载。

3. html解析

  • 使用BeautifulSoup和正则表达式从网页解析五个字段信息

4. 储存解析数据

以上是代码的核心内容,完整源码博主已经上传到Github上了,可供参考,链接https://github.com/xiaoyusmd/ZhilianJob_Crawl_Master

--------------------------

更多效果图展示

--------------------------

展示效果图均为部分截图,用于示意。

(搜索关键词:广告策划,地理位置:北京)

(搜索关键词:电子工程师,地理位置:上海)

(搜索关键词:会计,地理位置:深圳)

(搜索关键词:客户经理,地理位置:广州)

--------------------------

总结

--------------------------

  • 本篇分享了一个从智联招聘网站爬取工作信息的实战内容,完成了需求的基本功能。
  • 在此实战内容基础上,更多复杂和精彩功能会在后续陆续分享

------------------------------------------------ ~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据科学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬虫抓取智联招聘(基础版)
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器
IT派
2018/07/30
1.3K0
Python爬虫抓取智联招聘(基础版)
爬虫篇(3)——招聘网站招聘信息的爬取流程
目的:爬取智联招聘上全国的所有职位信息 职位信息包括:职位名称、福利、待遇、薪水、工作地点、工作经验、学历要求等 流程 包括分析页面和编写代码两部分 分析页面 1.主页面由职业分类组成,找
DC童生
2018/04/28
1.4K0
爬虫篇(3)——招聘网站招聘信息的爬取流程
Python爬虫之六:智联招聘进阶版
运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器
王强
2018/08/09
1.2K0
Python爬虫之六:智联招聘进阶版
python爬虫实例大全
WechatSogou [1]- 微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。
全栈程序员站长
2022/09/06
1.1K0
python爬虫获取拉钩网在线搜索招聘信息(超实用!)
在之前的博客《用python爬虫制作图片下载器(超有趣!)》中,小菌为大家分享了如何制作一个快捷便利的图片下载器。本次分享,小菌为大家带来的同样是关于爬虫程序方面的分享——获取拉勾网在线搜索消息。话不多说,直接上代码!
大数据梦想家
2021/01/27
7040
python爬虫获取拉钩网在线搜索招聘信息(超实用!)
Python爬虫入门(一)
前言 很多人都或多或少听说过 Python 爬虫,我也一直很感兴趣,所以也花了一个下午入门了一下轻量级的爬虫。为啥是轻量级的爬虫呢,因为有的网页是比较复杂的,比如需要验证码、登录验证或者需要证书才能访问,我们了解爬虫的概念和架构,只需要做一些简单的爬取工作即可,比如爬取百度百科这种纯信息展示的网页,这些都是不需要登录的静态网页。即便再复杂的爬虫网页和爬虫框架,实际上都离不开这一套基本的爬虫架构。 爬虫简介 爬虫是一段自动抓取互联网信息的程序。每个网页都有一个URL,从一个网页入口开始,通过各种URL的跳转形
小之丶
2018/03/07
9270
Python爬虫入门(一)
「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息 「Python爬虫系列讲解」六、Python 数据库知识
荣仔_最靓的仔
2021/02/02
1.6K0
「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取
【一起学Python】爬取前程无忧招聘信息并写入Excel
说在前面:这是依旧是来自Ricky的爬虫小实战。预告一下未来的几个主要内容吧,打算重写一下微信公众号后台,然后写几篇教程;之后是有关分词、词云、情感分析的一些内容;然后也有打算研究一下小程序,坑好多,
不二小段
2018/04/08
1.3K0
【一起学Python】爬取前程无忧招聘信息并写入Excel
【读者投稿】数据说话,Python 的就业状况如何
不少读者在学习编程之后,做了一些自己的练手项目,或者积累了一些学习经验和心得,希望可以与更多的学习者交流分享。 因此,我们决定新增一个小栏目,提供给大家一个展示的平台。欢迎大家将自己写的代码、学习中的体会、优秀的学习资源等整理成文,投稿给我们。 目前暂无稿酬,但我们会在文章中保留你的署名和原文跳转链接,你也可以在文中附上自己的博客地址、二维码、社交账号等。 投稿请发送至邮箱 contact@crossincode.com ---- 学了 Python 之后能找到工作吗? Python 程序员工资几何? 互
Crossin先生
2018/04/17
6220
【读者投稿】数据说话,Python 的就业状况如何
手把手教你用python做一个招聘岗位信息聚合系统
在当今竞争激烈的就业市场中,招聘岗位信息的获取变得越来越重要。为了方便求职者快速找到适合自己的岗位,我们可以借助Python编程语言开发一个招聘岗位信息聚合系统。该系统可以从官网、Boss直聘、猎聘等多个招聘网站上获取招聘信息,并进行聚合和展示。
大盘鸡拌面
2023/12/18
7380
Python基础学习_09_网页爬虫基础
Python进行网页内容的爬取,首先需要将网页内容下载到本地,再针对特定网页内容的结构进行网页内容的解析,获得需要的数据。
码农帮派
2020/04/01
5470
Python基础学习_09_网页爬虫基础
爬虫0601:scrapy实战scrapy实战:智联招聘数据采集
采集的数据要被封装起来进行使用,找到并修改zhilianspider/zhilianspider/items.py,修改内容如下:
大牧莫邪
2018/08/27
6660
利用Python爬虫某招聘网站岗位信息
Requests 的介绍是这样的: 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用
可以叫我才哥
2021/08/05
9290
抓取58job, 赶集job以及智联招聘,并使用数据分析生成echarts图
**抓取58job, 赶集job以及智联招聘,并使用数据分析生成echarts图**
andrew_a
2019/07/30
9290
抓取58job, 赶集job以及智联招聘,并使用数据分析生成echarts图
Python爬虫 | 一条高效的学习路径
数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如:
conanma
2021/11/01
7740
【Python爬虫五十个小案例】微博热点爬取小案例~
文章链接:https://cloud.tencent.com/developer/article/2473806
小馒头学Python
2024/12/05
9520
【Python爬虫五十个小案例】微博热点爬取小案例~
关于Python爬虫,这里有一条高效的学习路径
关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以
昱良
2018/04/08
2.1K0
关于Python爬虫,这里有一条高效的学习路径
Python程序员需要掌握的网络爬虫技术
当下是一个大数据的时代,各个行业都离不开数据的支持,因此,网络爬虫应运而生。编写网络爬虫当下最为火热的语言毫无疑问是Python,原因是,Python开发爬虫相对简单,功能库完善,易于学习。
小小詹同学
2018/07/24
7140
Python程序员需要掌握的网络爬虫技术
Python爬虫框架Scrapy获得定向打击批量招聘信息
爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这样的说法不够专业,更专业的描写叙述就是。抓取特定站点网页的HTML数据。只是因为一个站点的网页非常多,而我们又不可能事先知道全部网页的URL地址,所以,怎样保证我们抓取到了站点的全部HTML页面就是一个有待考究的问题了。
全栈程序员站长
2022/07/06
3310
Python爬虫框架Scrapy获得定向打击批量招聘信息
爬虫进阶(二)
总第66篇 在前面的几篇推文中我们分享了最基础的爬虫入门,以及基于AJAX的爬虫入门,这篇我们分享关于如何利用selenium对目标网页进行数据爬取的。 01|背景介绍: 学爬虫怎么能不买一本Python爬虫书来看呢,有人推荐说《用Python写网络爬虫》这本书不错,所以决定入手一本看看,但是淘宝上卖家比较多,我该选哪家呢,我想选的肯定是质量又好(销量不错),价格又便宜的卖家,但是鉴于淘宝卖家众多,人为去筛选有点累,所以决定爬取数据来帮我选择一下。 数量果真有点多,每一页有四十多家,也就是用“用Py
张俊红
2018/04/11
1.5K0
爬虫进阶(二)
推荐阅读
相关推荐
Python爬虫抓取智联招聘(基础版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档