摘要:如果想这样解析页面获取数据有以下几个问题职位列表最多只有页职位关键信息获取不全比如一个职位的地点应该属于市区商区楼,这种信息只靠解析页面是获取不全的。
前期准备
Don"t be evil!
主要就是分析需要抓取的页面,或许会有意外惊喜,直接找到获取数据的接口。
首选打开拉钩网首页,发现一个职位至少有一个一级分类、二级分类和一个标签。比如需要点击查找Java相关的职位,需要找到技术、后端开发,然后点击Java,才能获取Java相关的职位列表。
职位列表就可以得到很多的关于职位的信息了,如职位名称、公司名称、公司logo、所属行政区、商区等信息,但是需要提取这些信息的时候,xpath会让人写的很头疼。
如果想这样解析页面获取数据有以下几个问题:
职位列表最多只有30页
职位关键信息获取不全
比如一个职位的地点应该属于XX市XX区XX商区XX楼,这种信息只靠解析页面是获取不全的。不过当点击城市的时候,查看发送的网络请求,可以发现一个可喜的接口,这个接口将会返回一个职位列表的json数据。
但是因为为了防止爬虫调用这个接口,使用接口的时候必须要带上cookie。访问首页的时候,会获取部分cookie值,但是唯独没有SEARCH_ID这个值。
但是这个cookie不是平白无辜的产生的,想想调用这个接口的页面入口,观察response的header,会发现有Set-Cookie:SEARCH_ID=7587e152a3b14eec8bb0f29e774e4094; Version=1; Max-Age=86400; Expires=Sun, 26-Feb-2017 17:16:05 GMT; Path=/。
这样前期的准备工作就完成了,可以开始编码了。
开始编码通过前期分析,可以发现需要做这么几项工作:
访问首页和职位过滤页面获取cookie
带上cookie调用接口
具体的流程:
访问首页,获取所有职位的标签
按城市调用接口,同时获取所有cookie
保存数据
所以需要一些工具。
动态加载页面和获取cookie:
Selenium with Python
PhantomJS
带上cookie调用接口:
Requests: HTTP for Humans
源码
结果抓取的总量(已经将数据保存在mongodb中了):
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38454.html
摘要:微信知乎新浪等主流网站的模拟登陆爬取方法摘要微信知乎新浪等主流网站的模拟登陆爬取方法。先说说很难爬的知乎,假如我们想爬取知乎主页的内容,就必须要先登陆才能爬,不然看不到这个界面。图片描述知乎需要手机号才能注册登陆。 微信、知乎、新浪等主流网站的模拟登陆爬取方法摘要:微信、知乎、新浪等主流网站的模拟登陆爬取方法。 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样。从是...
摘要:爬虫又一个爬虫实现原文简介小强当时不知道为啥选了这么个名字,又长又难记,导致编码的过程中因为单词的拼写问题耽误了好长时间。我是一个小强爬虫线程数健壮说到健壮,这里主要体现在以下几个方面应对封锁这里我们使用动态代理来解决这个问题。 cockroach 爬虫:又一个 java 爬虫实现 原文 简介 cockroach[小强] 当时不知道为啥选了这么个名字,又长又难记,导致编码的过程中因为单...
摘要:成功爬取了拉钩网上多个招聘岗位的具体信息后,数据可视化并得出分析结果如下从整体看,北上广深杭这五个城市前端工程师招聘岗位,北京是遥遥领先,是深圳的两倍,是广州的三倍,其次到上海,深圳,杭州,广州居末。 前前言 本文首发于 github blog 不想看爬虫过程只想看职位钱途数据分析请看这里:前端招聘岗位分析C++招聘岗位分析JAVA招聘岗位分析PHP招聘岗位分析Python招聘岗位分析...
摘要:爬虫爬虫又称网络机器人。每天或许你都会使用搜索引擎,爬虫便是搜索引擎重要的组成部分,爬取内容做索引。那我萌就来探讨一下网络爬虫吧。对后关于不仅仅可以用来做爬虫,因为可以编程,无头浏览器,可以用来自动化测试等等。 @(爬虫)[puppeteer|] 爬虫又称网络机器人。每天或许你都会使用搜索引擎,爬虫便是搜索引擎重要的组成部分,爬取内容做索引。现如今大数据,数据分析很火,那数据哪里来呢,...
阅读 3820·2021-11-18 13:22
阅读 1748·2021-11-17 09:33
阅读 2857·2021-09-26 09:46
阅读 1142·2021-08-21 14:11
阅读 2840·2019-08-30 15:53
阅读 2646·2019-08-30 15:52
阅读 1840·2019-08-30 10:52
阅读 1494·2019-08-29 15:30