拉勾网招聘数据爬取(公布源码)

公众号爬取拉勾网招聘数据,本文只讲重点,因为爬任何一个网站,可能最重要的就是遇到反爬怎么办,也就是第一步能不能爬下来数据的问题,本文讲如何爬取拉勾招聘数据

环境及软件:Linux乌邦图、redis、mysql、pycharm软件

所需库和包:截图中的

拉勾网招聘数据爬取(公布源码)_第1张图片

0、运行方法

构造城市列表和岗位列表,并发送请求,本文仅作学习参考,如果想爬取更多数据,请大家自己写方法获取拉勾所有城市和所有岗位

拉勾网招聘数据爬取(公布源码)_第2张图片

1、初始化数据

拉勾反爬手段,必须加referer地址,代理、请求头根据情况该怎么加就怎么加

找到的请求接口是post接口,并返回数据

用到redis对数据去重,所以添加的有redis初始化

用到CSV,也对CSV做了初始化(当然也可以用数据分析库pandas写入CSV,更方便)

拉勾网招聘数据爬取(公布源码)_第3张图片

拉勾网招聘数据爬取(公布源码)_第4张图片

拉勾网招聘数据爬取(公布源码)_第5张图片

2、提取数据(为了代码结构清晰,我对列表页和详情页分别写了两个方法)

列表页,直接json数据很方便提取,并调用获取详情页数据方法

拉勾网招聘数据爬取(公布源码)_第6张图片

详情页数据,通过xpath提取

拉勾网招聘数据爬取(公布源码)_第7张图片

3、通过redis实现对数据更新update还是增加insert

将公司名称和工作职位两个字段进行加密,生成指纹,存入redis,每次新来数据的时候,将新来的数据这两个字段加密,执行sadd方法,如果能加进去,说明是新数据,返回值1,如果加不进去,说明是重复数据,返回值是0

拉勾网招聘数据爬取(公布源码)_第8张图片

4、该代码为保存到mysql数据库代码,先将dict传入生成指纹方法,根据返回值是1还是0,分别执行insert和update操作

拉勾网招聘数据爬取(公布源码)_第9张图片

拉勾网招聘数据爬取(公布源码)_第10张图片

5、当然你也可以将数据顺便保存在CSV文件,方便查看

拉勾网招聘数据爬取(公布源码)_第11张图片

部分截图如下

拉勾网招聘数据爬取(公布源码)_第12张图片

经验有限,不足之处欢迎指正

你可能感兴趣的:(python)