两种方式爬取拉勾网职位信息的总结

大学毕业论文写了一个关于职位信息的爬虫,爬取了包括拉钩智联在内的许多网站,上个月拿出老代码再爬拉钩发现失效了,经过两个星期(每天大概2-3个小时)的不懈努力重写了拉钩网的爬虫,自我感觉,拉钩是总多招聘网站较难爬取的,其他的58,智联之类的好像和拉钩的反爬机制简直不能比。下面说说我遇到的坑,以供大家参考

基于HttpClient的爬虫

首先通过抓包工具知道是加载方式是ajax,请求方式是json,但是将json的请求连接附上以后报错,查看报错页面:
在这里插入图片描述
百思不得解,知道看了另外一篇博文:
https://blog.csdn.net/m0_43400362/article/details/88396490#commentBox
才恍然大悟,拉钩的列表页cookie应该是临时的,每次请求列表页的时候服务器都会返回一个新的cookie,而这个cookie是要发送的json的post的请求中去的。上面的博客完美解决了这个问题。这样的话爬列表页就没有问题了?too young too simple,当你爬5页以后拉钩又报错了,这次弹出的是登录页面:
在这里插入图片描述
这种情况一般是由爬的太快导致的,两分钟爬一个列表页应该不会报这个错误。或者把登录信息包含到cookie中,也能解决这个问题。但是你以为登录了就没问题了吗?
拉钩下的第二个坑
在这里插入图片描述
以上两个坑都是爬的太快导致的,如果两分钟请求一页,那是没有问题的。但是仅限于列表页,但是想要爬详情页也两分钟爬一个吗?两分钟一个详情页,爬满一个列表页就要半个小时,这个效率。。
总而言之,基于HttpClient 的爬虫对我是不可取的,稍微快一点总是弹出验证信息让你来验证,而我一直在分析这个验证信息是由什么来触发的,需要抓包,调试,分析cookie才能知道问题所在,最后再去改正,对于我这样的小白实在想把头皮抓烂。

基于Selenium+Chromedriver的爬虫

这种方式可能效率不高,但是简单易行,重构代码的两个星期中,其中调试HttpClient就花了十天,后来干脆放弃,转向Selenium,四天把他搞定了。

最后总结一下:大部分网站基本不会封IP,因为一个IP可能代表着一个区域内的用户,很大概率会误封,这个大家不要担心,其次,我建议先用Selenium+Chromedriver爬,这样做的好处就是,每次报错的信息直接在chrome中显示出来了,不至于每次在IDE中一头雾水,完全不知道发生了什么,还要打断点,调试,抓包。当对这个网站的反爬机制有一定了解以后,再使用HttpClient写爬虫,绕过再Selenium+chromedriver中遇到的坑。
最后附上源码:
https://github.com/dongfangguo9/LGS

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值