拉勾网的语言与技术方向爬虫
来源:互联网 发布:一键装修淘宝店铺软件 编辑:程序博客网 时间:2024/06/05 20:52
拉勾网关于语言方向与技术方向的爬虫
1、工欲善其事必先利其器,工具的选择
关于爬虫有很多工具可以使用,可以用urllib,也可以用requests,还可以使用scrapy框架,他们各有各的好处,我使用的是requests
2、对拉勾网的前端代码分析
爬虫爬取的都是显示给客户的信息,所以要爬虫一定要对前端进行分析
1、拉勾网中对于python进行搜索的url
可以看出,搜索信息是在url中进行传递的,这就确定了我们爬取的url池,可以用占位符来指定我们需要爬取的内容
2、拉勾网的信息是存在哪里的
如果直接对url进行get操作,返回的html页面并没有招聘信息,所以是不能直接get网页然后用正则表达式进行匹配的,这时候就要用到chrome浏览器,用chrome浏览器打 开拉勾网,然后f12,看network下的XHR,进行一次翻页操作,可以看到拉勾网是使用ajax请求来传递数据的,传回来的是一个Json,这个Json中包含我们所需要的信息,所以 我们的目的就是要获得这个Json数据然后进行操作。
3、构建请求
爬虫是批量获取信息的工具,有两个重点,1是批量,2是获取信息,批量可以通过创建url池来达到,而获取信息,就是靠发送请求来获取。
翻页操作是一个POST请求,构建一个POST请求就可以获得拉勾网。
这个就是我的请求头,data可以从浏览器中获得,就可以发送ajax请求获得Json数据进行解析了。
4、异常处理
拉勾只给用户显示20页的信息,但实际上如果对后续页进行ajax请求依然能返回数据,但不知道什么时候才结束,我观察到,结束以后返回的包依然是200,但是Json中有false,所以可以对返回的信息进行字符串切割,如果有false,就结束循环,进入下一个项目的爬取。
5、拉勾网的反爬手段
拉勾网的反爬手段主要有两个
1、规定时间内只能有规定次数的请求
这个只能通过代理IP破,但我在西刺上爬取了几百个IP,验证以后没有一个能用的,所以只能放慢爬取速度了
2、返回301重定向
如果请求头中不包含referer,将会返回一个301重定向,重定向的目标还是这个url,会进入一个死循环。只要加了referer就可以了
6、最终结果
爬取了python、PHP、Java、Html5、Go、C++、C#的招聘信息,并用excel做成了图表,可以根据图表选择学习的方向
阅读全文
0 0
- 拉勾网的语言与技术方向爬虫
- 关于技术与方向的思考
- 语言的选择与方向的决定
- 网络爬虫技术的攻与防
- 学习技术的方向
- 测试技术的方向
- 技术方向的思考
- 以后的技术方向
- 技术方向的选择
- 技术方向的选择
- 浅谈公司技术方向Java与.Net的分工合作
- 万维网的技术基因与进化方向(转载)
- 深度学习理论与技术的重点研究方向
- 语言选择与就业方向
- 天气预报的爬虫技术
- 浅谈公司的技术方向 Java 与 .Net 的分工合作,一个公司的整体技术定位
- 浅谈公司的技术方向 Java 与 .Net 的分工合作,一个公司的整体技术定位
- 浅谈公司的技术方向 Java 与 .Net 的分工合作,一个公司的整体技术定位
- 非阻塞I/O(未完待续)
- 3.2关系代数:传统的集合运算和专门的关系运算
- Java中的@Override有什么用
- 梯度下降优化算法综述
- HDU 6194
- 拉勾网的语言与技术方向爬虫
- TensorFlow:简单的卷积层、池化层(采样层)示例
- 初学javaWeb遇到的问题,来个小总结
- 词向量源码解析:(4.8)hyperwords源码解析之example_test
- faster-rcnn之RPN网络的结构解析
- 简单工厂模式
- windows+apache2.4+mysql+php5.6
- Java jsp:转发与重定向的区别;Cookie与session的比较
- 电信宽带运营采集系统项目总结