写在前面
爬虫是 Python 的一个常见应用场景,很多练习项目就是让大家去爬某某网站
爬取网页的时候,你大概率会碰到一些反爬措施
这种情况下,你该如何应对呢?
本文梳理了常见的反爬措施和应对方案
接着往下看吧
通过User-Agent来控制访问
无论是浏览器还是爬虫程序,在向服务器发起网络请求的时候,都会发过去一个头文件:headers
以本网页为例,点击鼠标右键,接着点击[检查],可以看到如下的示例
图1
这里面的大多数的字段都是浏览器向服务表明身份用的
对于爬虫程序来说,最需要注意的字段就是:User-Agent
很多网站都会建立User-Agent白名单,只有属于正常范围的user-agent才能够正常访问
解决方法
可以自己设置一下user-agent,或者更好的是,可以从一系列的user-agent里随机挑出一个符合标准的使用
图2
实现难度:★
IP限制
如果一个固定的ip在短暂的时间内,快速大量的访问一个网站,后台管理员可以编写IP限制,不让该IP继续访问
解决方法
比较成熟的方式是:IP代理池
图3
简单的说,就是通过ip代理,从不同的ip进行访问,这样就不会被封掉ip了
可是ip代理的获取本身就是一个很麻烦的事情,网上有免费和付费的,但是质量都层次不齐
如果是企业里需要的话,可以通过自己购买集群云服务来自建代理池
实现难度:★
SESSION访问限制
后台统计登录用户的操作,比如短时间