爬虫应对IP封禁的一般性处理方法
**
封IP目前是很多网站常用的反爬虫手段,为了让广大爬虫少走弯路,本文整理了几种可行的封IP应对方法
**
1.通过设置Http请求头直接绕过
某些网站,由于网站开发者或者管理员安全意识不够,通过设置X-Forwarded-For头可以伪造任意IP。以IP138为例
如上图所示,通过修改X-Forwarded-For标头的值,可以任意伪造请求ip,配合随机IP使用,效果很好。但是目前存在此类漏洞的网站已经很少了,但是建议第一时间先尝试一下。
2.ADSL拨号
原理就是ADSL断开重连之后,会更换IP。这种方式的优点是,IP质量很高,因为就是本机IP请求,但是局限性也很大,主要有以下缺点:
- 有IP段限制
- 拨号过程中会断网
- 一般不适合多线程使用
- 容易拨死
但是这种方式,如果拨号资源上去了(例如拨号机房),配合CCProxy等工具使用,可以引发质变(类似很多网站在售卖的自建动态代理)


3.使用代理IP
即对发送请求设置代理IP,代理IP按照匿名程度,可以分为匿名代理,透明代理等,区别就是对方的服务器能否知道你的真实IP地址。很多网站无论你使用的是什么代理,都会取代理IP的值(为了防范第一种方式提到的漏洞),所以对于爬虫来说,匿名代理和透明代理都是可以用的。市面上售卖的代理IP多为扫描器扫描代理,时效性在几分钟到几小时不等,配合多线程可以满足抓取需求。由于此类代理IP来源不单一,优质,劣质,国内,国外都有,因此使用时注意设置TimeOut,如果发起的是Post请求,还要注意设置读写超时(C#中为HttpWebRequest.ReadWriteTimeout属性)。