Python爬虫从入门到精通(八)反爬及应对反爬的策略

目录

一、 网站如何发现爬虫

二、网站如何进行反爬

三、爬虫如何发现自己可能被网站识别了

四、 爬虫应对反爬的策略

总结


v搜索公众号:zhulin1028
后台回复:【Python1】【Python2】【Python3】【Python全栈】【爬虫】
免费获取对应资料。
欢迎技术交流,加我V:ZL3132537525

随着抓取的数据量到一定程度,数据重复及爬取过程中的死链问题会凸显。怎么来解决反爬问题呢?

一、 网站如何发现爬虫

一般来说,网站会有以下一些简单的策略发现爬虫程序:

  1)单一IP非常规的访问频次;

  2)单一IP非常规的数据流量;

  3)大量重复简单的网站浏览行为,只下载网页,没有后续的JS,CSS请求;

  5)通过一些陷阱来发现爬虫,例如一些通过CSS对用户隐藏的链接,只有爬虫才会访问;

二、网站如何进行反爬

一般来说网站会采用下面两个简单的策略来防止爬虫:

1.大量使用动态网页,是的爬虫的爬取难度增加,重要数据都拿不到,即使爬虫采用了Web环境来渲染(内置浏览器),也会大大增加爬虫的负担和爬虫时间;(当然,采用动态加载的技术,对服务器的负担也会大大减轻)

2.基于流量的拒绝:

  开启带宽限制模块,限制每个IP最多连接数,最大带宽等;

三、爬虫如何发现自己可能被网站识别了

如果爬取过程中出现以下情况,那么小心了,你的爬虫可能被网站发现了:

    1.验证码出现;

    2.Unusual content delivery delay 非常规的延时;

    3.Frequent response with HTTP 403, 404, 301 or 50x error;

四、 爬虫应对反爬的策略

我们可以从以下几个方面来考虑应对反爬:

1)User-Agent池;

2)代理服务器池;

3)CookieJar等的管理;

4)协议的细节考虑,如:需要大量的实践经验总结的

          抓取数据时不处理CSS,JS等;

          nofollow属性;css的display属性;探测陷阱;

          验证refer locator等;

5)使用分布式的多机策略;爬慢点,把爬虫放到访问频繁的主站IP子网下,如教育网;

6)使用了各种规则来尝试批量爬取,然后对规则动态进行组合;

7)验证码的搞定:机器学习,图像识别;

8)尽可能遵守

总结

以上文章主要面对初级及中级爬虫工程师的参考资料。由于本人能力及知识有限,目前只能总结到这里。但是关于爬虫的知识和技术,互联网知识和技术更新换代非常快。后期本人会尽我所能,根据实际工程需要,增加新的实用的知识。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>