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

举报
zhulin1028 发表于 2021/12/12 00:50:13 2021/12/12
【摘要】 目录 一、 网站如何发现爬虫 二、网站如何进行反爬 三、爬虫如何发现自己可能被网站识别了 四、 爬虫应对反爬的策略 总结 v搜索公众号:zhulin1028后台回复:【Python1】【Python2】【Python3】【Python全栈】【爬虫】免费获取对应资料。欢迎技术交流,加我V:ZL3132537525 随着抓取...

目录

一、 网站如何发现爬虫

二、网站如何进行反爬

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

四、 爬虫应对反爬的策略

总结



  
  1. v搜索公众号:zhulin1028
  2. 后台回复:【Python1】【Python2】【Python3】【Python全栈】【爬虫】
  3. 免费获取对应资料。
  4. 欢迎技术交流,加我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)尽可能遵守

总结

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

文章来源: zhulin1028.blog.csdn.net,作者:zhulin1028,版权归原作者所有,如需转载,请联系作者。

原文链接:zhulin1028.blog.csdn.net/article/details/121362973

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。