智联招聘爬虫demo分享

之前做过一阵子数据爬取的相关工作,现有一个基于Scrapy的智联招聘爬虫demo分享,以供初学者学习之用。

demo链接:https://github.com/xander-ye/recruit_data

项目目录结构

下面简单的介绍下

这里有三个主要的文件夹,分别是:

  • Database(数据库文件)
  • RecruitSpider(爬虫程序)
  • Datamining(数据分析统计)

其实爬虫分两种,一种是通用爬虫程序,就像搜索引擎一样,什么都爬,爬取的网站也没有固定格式,基本上也不限制域名;另外一种就是针对特定的网站,比如这里的智联招聘,它的数据具有规范的格式。

关于数据库

爬取特定网站的程序,我一般的流程是先打开要爬取的网站,收集需要爬取的内容,关键字,据此建立数据库。
这里我使用的mysqlWorkbench来生成数据库文件
mysqlWorkbench下载
具体步骤:
打开mysqlWorkbench : File>New Model > Add Diagram
点击新table按钮新建一个表,如下图:
双击表便可在下方添加字段。


创建好之后长这样:

导出数据库文件:
image.png

然后就是用这个文件去刷一下mysql就好了。
数据库环节完成。

爬虫程序

网上Scrapy也比较多,中英文的都有,这里贴一个中文的:http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

简洁的梳理下爬取的流程:
在RecruitSpider>spiders>zhilian.py中start_requests方法开始,到parse_job_detail,此时数据item抛给了pipelines.py,在抛给pipelines.py 之前呢,item自身有个对数据处理的过程,这个过程便是在items.py中完成。
在pipelines.py中完成最终数据插入数据库操作。
涉及到的去重参见具体代码吧。

补充:
  • 爬虫部署可采用scrapyd
  • 与scrapyd配套的有scrapyd-client,封装了scrapyd的API,使得提交爬虫,调度爬虫,停止爬虫方便了许多
  • Gerapy是一个管理爬虫的web界面,也是基于scrapyd

数据分析环节

去年年终的时候猛然间发现很多公众号发布了各种领域,各个方面的很多统计报告。这就是一个数据分析的结果。现在我们数据库里面有了几十上百万的招聘数据,我们就可以从各个方面来进行分析,比如各个城市平均薪资,各个城市薪资标准差,各行业招聘数量,工资与学历关系,与工作年限关系,以及具体到某行业不同岗位薪资区别,等等。这些数据能够帮助我们了解一个行业是否兴旺发达,你当前的工资水平在整个同行业同岗位来看处于一个什么样的水平,当前最火热的岗位技术是那些;这些信息了解的越多对于找工作的同学越有利,对于准备换行的同学也是有一个极大的参考价值。

具体分析用到了pandas,可视化使用的是matplotlib,它们具体的教程各位也自行去搜索吧。

推荐下 jupyter notebook,这个工具在数据分析的时候超级方便。

这里象征性的分析了两三个数据,贴在下面:


各行业招聘人数排名
工资与学历关系
各行业平均薪资

微信公众号

推荐阅读更多精彩内容

  • 爬虫文章 in 简书程序员专题: like:128-Python 爬取落网音乐 like:127-【图文详解】py...
    喜欢吃栗子阅读 17,166评论 5 404
  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 13,354评论 48 516
  • Python开发简单爬虫(Python2.X版本,Eclipse工具) 一、爬虫介绍 爬虫调度端:启动、停止爬虫,...
    凛0_0阅读 1,154评论 2 11
  • 岁月如同一把尖刀 锋利无比 把你我容颜改变 当青涩懵懂时 一句问候就能融化了寒冰 梦里都是热情的轻抚 后来渐成陌路...
    此城此警阅读 135评论 0 1
  • 在高中时,最喜欢的解压方式,就是每天晚上钻在被窝里。偷偷打开手机收音机,听一个叫星光慢摇吧的电台节目。那时候很喜欢...
    A千树姑娘阅读 33评论 0 1