史上最全Python反爬虫方案汇总

本文详细介绍了Python反爬虫的多种策略,包括User-Agent控制、IP限制、SESSION访问限制、Spider Trap、验证码验证、robots.txt限制、动态加载数据及数据加密等。针对每种策略,文章探讨了实现方法、缺点及难易程度,为爬虫开发者提供了应对反爬的思路。
摘要由CSDN通过智能技术生成

通过User-Agent来控制访问

无论是浏览器还是爬虫程序,在向服务器发起网络请求的时候,都会发过去一个头文件:headers,比如知乎的requests headers

这里面的大多数的字段都是浏览器向服务器”表明身份“用的

对于爬虫程序来说,最需要注意的字段就是:User-Agent

很多网站都会建立 user-agent白名单,只有属于正常范围的user-agent才能够正常访问。

爬虫方法:

可以自己设置一下user-agent,或者更好的是,可以从一系列的user-agent里随机挑出一个符合标准的使用。

史上最全Python反爬虫方案汇总

缺点:

容易容易伪造头部,github上有人分享开源库fake-useragent

实现难度:★

IP限制

如果一个固定的ip在短暂的时间内,快速大量的访问一个网站,后台管理员可以编写IP限制,不让该IP继续访问。

爬虫方法:

比较成熟的方式是:IP代理池

史上最全Python反爬虫方案汇总

简单的说,就是通过ip代理,从不同的ip进行访问,这样就不会被封掉ip了。

可是ip代理的获取本身就是一个很麻烦的事情,网上有免费和付费的,但是质量都层次不齐。如果是企业里需要的话,可以通过自己购买集群云服务来自建代理池。

缺点:

可以使用免费/付费代理,绕过检测。

实现难度:★

SESSION访问限制

后台统计登录用户的操作,比如短时间的点击事件,请求数据事件,与正常值比对,用于区分用户是否处理异常状态,如果是,则限制登录用户操作权限。

缺点:

需要增加数据埋点功能,阈值设置不好,容易造成误操作。

爬虫方法:

注册多个账号、模拟正常操作。

实现难度:★★★

Spider Trap

蜘蛛陷阱导致网络爬虫进入无限循环之类的东西,这会浪费蜘蛛的资源,降低其生产力,并且在编写得不好的爬虫的情况下,可能导致程序崩溃。礼貌蜘蛛在不同主机之间交替请求,并且不会每隔几秒钟从同一服务器请求多次文档,这意味着“礼貌”网络爬虫比“不礼貌”爬虫的影响程度要小得多。

反爬方式:

  1. 创建无限深度的目录结构

HTTP://example.com/bar/foo/bar/foo/bar/foo/bar /

  1. 动态页面,为网络爬虫生成无限数量的文档。如由算法生成杂乱的文章页面。
  2. 文档中填充了大量字符,使解析文档的词法分析器崩溃。

此外,带蜘蛛陷阱的网站通常都有robots.txt告诉机器人不要进入陷阱,因此合法的“礼貌”机器人不会陷入陷阱,而忽视robots.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值