最近在研究区块链,闲来无事抓取了拉勾网上450条区块链相关的招聘信息。过程及结果如下。

拉勾网爬取

首先是从拉勾网爬取数据,用的requests库。拉勾网的反爬虫做的还是比较好的,毕竟自己也知道这种做招聘信息聚合的网站很容易被爬,而且比起妹子图这种网站,开发的技术水平应该高不少。
一开始爬取几个数据后就会跳转到登陆页面,当时采用的应对策略是:当跳转到登陆页面的时候,就挂起20s,再重新请求一次,发现一般挂起一段时间之后就又可以访问了。这样的问题是比较慢,450条信息花了几十分钟。

后来,我天真地认为:只要登陆了就可以不用挂起等待这么久。于是,添加了模拟登陆地逻辑,主要参考地这篇文章:python – 拉勾网爬虫模拟登录 - CSDN博客。拉勾网对密码做了两次md5加密,并会下发动态地Token口令,防止低级地伪造请求,需要仔细分析登陆界面加载的JS文件才能成功登陆,拿到Cookie。想起当年模拟登陆教务处,学号密码都是明文传输,我直接用F12工具能看到。。。成功拿到Cookie后发现,访问过快时又会跳转到首页,并弹出一个“切换城市”的悬浮窗,更准确地说是我的请求被重定向了。

为什么重定向,因为后台能够通过访问频率很容易发现我的请求是爬虫,所以重定向,普通用户可以点击取消悬浮窗,由于requests不支持JS运行,所以我就GG了,只能像前面那样挂起一段时间再请求。这样一来,模拟登陆就没有意义了。
针对这种情况,我认为有两种解决办法,一种是使用IP池和多线程,不断变换请求的IP就不会被发现了。另外一种就是用无头浏览器。个人感觉两种都是可行的,下次有需求了再实践一下。

爬取结果分析

将爬取的网页提取信息,本着可视化原则,用mathplotlib做些图。其中遇到的主要问题是mathplotlib的中文支持,试了网上很多方法都失败了,这里要把自己亲测可行的方法记录下来:

from matplotlib import rcParams
import matplotlib.font_manager as fmzhfont = matplotlib.font_manager.FontProperties(fname='../test.ttf')
font_list = fm.createFontList(fm.findSystemFonts(['/home/zhaoyu/Project/BlockChainAnalysis/font', ]))
fm.fontManager.ttflist.extend(font_list)
matplotlib.rcParams['font.family'] = 'WenQuanYi Micro Hei'

主要结果如下:
公司规模,小公司居多:

城市分布,北上深最多:

发展阶段:

薪资分布:

(感觉这样表示不是很直观,自己划定几个区间,做一个柱状图可能更好)

最后还用jiebatextrank4zh做了关键词提取,但由于手法粗糙加上噪音严重(产品经理、技术开发等等的招聘需求应该分类处理),效果好像不是很理想:

Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.854 seconds.
Prefix dict has been built succesfully.
关键词:
技术 0.010791270870042516
区块 0.008745674154277546
相关 0.00844148459795554
工作 0.008368189087078589
开发 0.007315529659791802
熟悉 0.006915993478846666
产品 0.0066154024633222315
能力 0.00606941754659388
项目 0.005688665635431383
经验 0.005609155675707272
公司 0.005484150951833748
优先 0.005273082641983991
团队 0.004833977171492051
行业 0.004666562221685026
设计 0.004646942513692475
系统 0.004561171667742128
进行 0.004504888034867325
研究 0.004431023464429216
业务 0.00431705965334352
负责 0.004180396829264431

发现的不足

  1. 按照之前的计划,个人能力的构建应该分为两部分,一部分是工具库的积累,一部分是底层原理的掌握。目前来看,两方面做的都不是很好。beautifulsoupmathplotlib都很不熟练,遇到反爬虫不能快速解决,拿到数据也不能很好的可视化出来。
  2. 平时没有意识去建立个人知识体系,比如常见的反爬虫与绕过方法,数据挖掘(拿到了爬取的数据该怎么办),数据可视化(怎么直观地表示数据)。
  3. 写代码不能得心应手,比如对容器地某个操作怎么最优雅,自己目前的水平就是遇到问题百度一下,找个可行地方案就套用上去,离自己理想的状态差太远了。

区块链招聘信息爬取与分析相关推荐

  1. 某招聘网站“数据分析”相关岗位招聘信息爬取并分析

    确定目标 简单分析数据分析相关岗位的薪酬状况及技能要求: 尝试数据分析从数据获取到数据分析报告撰写的整个数据分析流程,学习爬虫.数据清洗.数据分析相关技巧. 数据获取 获取的岗位数据来源于某招聘网站, ...

  2. 【2020-10-27】 scrapy爬虫之猎聘招聘信息爬取

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! scrapy爬虫之猎聘招聘信息爬取 1.项目场景 目标网址:https://www.liepin.com/zhao ...

  3. python拉勾网招聘信息爬取(单线程,最新)

    一.任务描述 爬取拉勾网发布的关于"会计"岗位的招聘信息,通过查询相关文章发现,普遍都是使用单线程对网站信息进行爬取,且拉勾网经过多次维护更新,对简单的爬取代码有反爬虫机制,例如不 ...

  4. python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析

    基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...

  5. 基于python的汽车销售_基于Python的汽车信息爬取与分析

    二.<基于Python的汽车数据爬取与分析> 1 课题内容和要求 1.1问题的提出 1)用Python 语言自行编写爬虫框架或使用Scrapy 框架,爬取汽车之家或易车网的车辆相关数据,按 ...

  6. 前程无忧招聘信息爬取

    爬取前程无忧招聘信息 本文是关于招聘数据爬取,我们选取的网站是前程无忧. 百度直接搜索前程无忧,或者51job.我们将看到搜索栏,在搜索栏中输入"数据分析师"将可以看到工作信息. ...

  7. 拉钩招聘信息爬取以及可视化

    本篇文章主要向读者介绍如何爬取像lagou这样具有反爬虫网站上面的招聘信息,以及对于以获取的数据进行可视化处理,如果,我们对于获取的数据不进行可视化处理,那我们获取到的数据就没有发挥它应有的作用.对于 ...

  8. Scrapy项目 - 数据简析 - 实现腾讯网站社会招聘信息爬取的爬虫设计

    一.数据分析截图 本例实验,使用Weka 3.7对腾讯招聘官网中网页上所罗列的招聘信息,如:其中的职位名称.链接.职位类别.人数.地点和发布时间等信息进行数据分析,详见如下图: 图1-1 Weka 3 ...

  9. 腾讯招聘信息 爬取案例

    前段时间看了了scrapy,有一个案例是爬取腾讯招聘信息的,当时看了腾讯网站,已经更新换代了,于是自己看了看,写下一个实际可行的demo 首先是观察腾讯招聘首页不在页面element内,但是依旧很容易 ...

最新文章

  1. Oracle中比较日期大小
  2. 用Kubernetes部署超级账本Fabric的区块链即服务(1)
  3. php 嵌套 mysql_PHP中实现MySQL嵌套事务的两种解决方案,mysql嵌套_PHP教程
  4. 软件工程个人作业05
  5. margin赋值为负值的几种效果(负值像素,负值百分数)
  6. POJ 3608 旋转卡壳
  7. 技术解析:一文看懂 Anolis OS 国密生态 | 龙蜥专场
  8. 淘宝自动发货申请资格
  9. SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)
  10. C++程序设计:原理与实践(进阶篇)15.6 实例:一个简单的文本编辑器
  11. 小鱼易连电脑版_揭秘:为什么win10电脑越用越卡,本质问题是什么?
  12. es文件浏览器开启ftp服务器,es文件浏览器访问ftp服务器
  13. SPSS Modeler 入门(一)
  14. 使用Koloda View在Swift中构建类似Tinder(国内的探探社交应用)的卡片
  15. java 图像锐化_Java中图像锐化操作的方法详解
  16. Windows server 下关闭135/139/445端口
  17. 项目二--03.基于Nginx、keepalived的高可用集群之keepalived高可用实现
  18. 数显之家快讯:【SHIO世硕心语】2021,写给自己的几段宽心话!
  19. POI 自定义颜色 RGB
  20. iOS开发:音乐播放器

热门文章

  1. 如何进行MySQL漏洞扫描
  2. iOS Hit-Testing
  3. Deepfacelab实现视频换脸——使用体验
  4. SpringMvc模式【从一篇文章入门到两篇文章入坑】更新中
  5. html转义和反转义
  6. Binning模式缩小分辨率
  7. transfer-encoding:chunked的含义
  8. 《小说朗读器》采集功能升级
  9. 储蓄卡注册paypal(无双币信用卡注册paypal)
  10. 验证概念(四)验证点的提取和执行