最近为了完成学校的大数据的作业,老师要我们爬一个的网站,里面有还算不错的防爬机制,忙活了几天,总结出一些常见的防爬机制的应对方法,方法均来自个人实战总结,非专业爬虫角度分析
1.响应时间过快
1.1网速不太行
一般有小伙伴不习惯设置time.sleep()这个方法,但是这个方法能解决很多问题,第一就是你网速不太行,网页还没解析完就跑到下面提取里面了,所以有时候因为进程问题,代码运行稍微快点有时候就会提取那里出现提取为空这样的情况,主要可能还是网速跟不上,建议无论好不好都在解析那部分下面加上一个缓冲时间。
1.2有频率监控
我们爬的那个网站应该有游客点击频率监控,有时候在网站上点击速度稍微快一点,就要你登录要你真人验证,模拟登录那块我试了,但没成功,有需要的小伙伴可以参考其他教程
爬虫中关于登录以及登录验证码的简单处理方法_爬虫 发送code 登录 0b1ondga16zh8f0xiuha1haagp3ondgt-CSDN博客
对于我本次作业来说,同样还是设置了sleep来解决这问题,但是可能设置的时间比较长,大概30多秒爬一个子网站,虽然有点慢,但是还算比较稳定,没怎么被抓到
2.伪装不够好
2.1设置ip代理池
一般要设置ip代理池这样不断用新的ip访问这样被抓的概率低一点,获取ip代理池的方法我也发过
免费搭建ip代理池的保姆级方法(最详细最有效)-CSDN博客
主要是通过一些免费网站获取后再调用接口来给自己使用
2.2伪装池设置
伪装池设置这方面相对来说就可能简单一点,如果有登录的网站最好先登录再从控制台提取到自己的cookies,有些网站的游客cookies的存活时间比较短,最好提取之后就挂着网页不要关了,这样至少你用的cookies不会被网址删除,而且建立headers主要还是里面的cooies不同,建议叫人帮忙登录拿多几个cookies之后random着来用,这样被追踪到的概率会低一点,相对于上面的操作来说这个简单一些
这些方法还是比较适用于一些比较简单的爬取,如果是大佬级别或者是长时间爬取的仅供参考
希望这篇博客对你有帮助!!!!!