利用request库和队列动态ip抓取拉勾网的python爬虫职位,并且写入MySQL数据库

一、目标站点分析
目标url:https://www.lagou.com/jobs/list_%E7%88%AC%E8%99%AB?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=
首先我们打开上述url,进入拉勾网爬虫招聘首页,看看是什么情况。
这里写图片描述
由于拉勾网的加载使用ajax动态加载的,也就是说,我们直接请求这个网页的url是抓取不到具体职位的url的,但是拉勾网是怎么给我们返回具体职位的url的呢?我们按下F12进行分析。
这里写图片描述
这里有三个点需要注意:
1.POST请求,说明拉勾网是通过框框里面的url请求了他们的后台接口,给我们返回的数据,所以,我们就可以模拟发送这个url去请求,理应可以获取我们想要的数据;
2.Json文件格式;
3.我们把响应复制放到这里写链接内容去格式化,这样就更加清楚返回的是什么内容。
这里写图片描述
我们可以看到有一个PositionID的字段很显眼,再仔细一看,对应的是一个招聘公司,我们回去爬虫页面,再点开这个url对比一下,发现这就是我们需要找的重要信息,我们可以把每个PositionID抓取下来,拼凑成url队列,给requests请求,就可以了!
这里写图片描述
需要注意的有两点:
1.我们需要POST一个data过去,这样才能请求获得响应;
2.我们需要设置一个Referer,不然的话拉勾网会返回”您的操作太频繁”,这是由于没有加Referer的原因。
二、核心代码解读
这里写图片描述
该部分是用于抓取page_url:先抓取10页的page_url,是试一试效果,还需要加入时间停顿,防止抓取过快,最后抓取positionId,再拼凑url,放入队列中。
这里写图片描述
该部分是解析想要的数据:如果队列没有请求的position_url,为空,那么就停止解析,跳出循环,下面的就是具体数据解析和清除干扰的tag标签了。
这里写图片描述
这里是把每一个职位的信息放到一个列表套元组中,然后for循环遍历,最后一个一个的写入数据库。
这里写图片描述
这里是从数据库随机选择ip,加了无效ip判断机制。
这里写图片描述
这里是借助scrapy.item的源码的方法,对抓回来的数据进行标签清洗的。
三、源码分享
github源码
四、题外话
爬虫需要学习的东西很多,我还得不断地去学习,大家一起加油~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值