做爬虫,碰到最多的问题不是代码bug,而是封IP。开发好一个爬虫,部署好服务器,然后开始抓取信息,不一会儿,就提示封IP了,这时候的内心是崩溃的。
那么,有什么办法不封IP呢?首先,要知道为什么会封IP,这样才能更好的避免封IP。有些网站反爬措施比较弱,伪装下IP就可以绕过了,修改X-Forwarded-for就万事大吉。但现在这样的网站比较少了,大部分的网站的反爬措施都在不断加强,不断升级,这给避免封IP带来更大的困难。
有人说,使用代理IP就万事大吉了。诚然,使用大量的优质代理IP可以解决大部分的问题,但并非高枕无忧。很多朋友购买了代理IP后,还经常向我抱怨,使用了代理IP为什么还被封,我要这代理IP何用?
我们知道,网站的反爬虫策略主要是反那些比较猖狂的爬虫,不可能反那些正常的用户。那么什么样的用户是正常的用户呢,如果将爬虫伪装成正常的用户呢,是不是就不会被封了。
首先,正常的用户访问网站频率不会太快,毕竟手速是有限,眼速也是有限的,爬虫要伪装成用户,那么抓取的频率就不能反人类,但这样一来,效率就大大降低了,怎么办?可以使用多线程来解决。
其次,一些网站往往需要验证码来验证,对于正常用户来说,只要不是眼瞎基本都没问题,但对于爬虫来说,就需要一套比较厉害的验证码识别程序来识别了,像12306这样的验证码就比较难搞定了。
然后,就是一些其他的细节了,比如,UserAgent经常换一换,cookie要清一清,访问的顺序最好不要有规律,爬取每个页面的时间没有规律等等。
反爬虫策略不断升级,相应的爬虫策略也要不断升级,不然有一天,你会发现,哪怕您使用了大量的代理IP,依然避免不了大面积的封IP,爬虫工作受阻。
亿牛云代理IP平台专业提供http代理IP、https代理Ip服务,欢迎广大顾客朋友前来咨询购买。
原文地址:https://blog.51cto.com/14201222/2377980