爬虫如何避免封IP

做爬虫,碰到最多的问题不是代码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

时间: 2024-10-14 02:31:47

爬虫如何避免封IP的相关文章

网络爬虫一定用代理IP吗?不用代理IP加快速度会被封吗?

网络爬虫一定用代理IP吗?好多人认为网络爬虫必须要加代理IP,没了代理IP将无路可走:也有些人认为代理IP是非需要的.这是为什么呢?不能直接用采集工具吗? 有人说,我用的采集器,用于收集一些其他网站的文章,随后筛选适用的做好加工即可,从来就没有用过代理IP,每天采集量一万篇上下.这没有代理IP照爬不误,因此网络爬虫不一定要用代理IP的. 但也有人说,企业的日常任务1天要抓取几十万个网页,有时候任务多的时候1天要一百多万,爬着爬着IP就被封了,没有代理IP根本不成.没有代理ip,网络爬虫根被就是寸

面对攻击和爬虫,封ip策略的不可靠之处

今天看到有人讨论有关封锁IP问题.本站经验之谈,认为非常不可取. 针对公网IP到户用户,可行性最高 国内网络结构在前面的博客里多次提到,国际上,公网IP已经分配完成,用光了全部资源.很多国内运营商公网IP资源不足.国内首先是联通手里,由于收购网通获得的大量IP资源.其次电信起步早,在南方等地区会拥有较多的公网IP资源.因此国内家庭线路,也就联通电信可以公网到户.回归主题,封IP策略,仅仅对这种用户,误伤最小 针对电信,地区性二级运营商,可行性减小 比如北方电信,某些小的二级网络服务商,往往城市级

对nginx服务器进行日志分析并且封IP

简单的日志分析排除命令,不过建议使用goacess日志分析视图化观察比较好,面对一些爬虫攻击,可以在nginx.conf配置文件里调用limit requst模块来限制连接数,如限制每秒钟的请求数:rate=10r/s,这是要依据业务情况来设置的. 1  分析日志封IP cd /nginx/logs [[email protected]]# awk '{print $1}' blog-access_log |sort|uniq -c|sort -rn -k1 280 "192.168.183.1

python爬虫+多线程+多进程+构建IP代理池

目标网站:静听网 网站url:http://www.audio699.com/ 目标文件:所有在线听的音频文件 附:我有个喜好就是晚上睡觉听有声书,然而很多软件都是付费才能听,免费在线网站虽然能听,但是禁ip很严重,就拿静听网来说,你听一个在线音频,不能一个没听完就点击下一集,甚至不能快进太快,否则直接禁你5分钟才能再听,真的是太太讨厌了... 于是我就想用爬虫给它爬下来存储本地就nice了. 我把我的大概分析步骤分享出来. 步骤1: 我查看静听网网页url有一个规律,基网址是http://ww

java爬虫常用设置代理IP教程

爬虫必须用代理IP吗?很多用户认为爬虫必须要用代理IP,没有代理IP将寸步难行:也有人说,代理IP是非必须的.那么他们这样认为的理由都是什么呢?有的用户他自己写爬虫程序,公司的任务一天要爬取几十万个页面,有时任务多的时候一天要上百万,爬着爬着IP就被封了,没有代理IP根本不行,他认为没有代理ip爬虫将寸步难行.他们说很有道理,都用亲身体验来证明了自己的观点.爬虫程序从本质上来说也是个访问网页的用户而已,只不过是个不那么守规矩的特殊用户,服务器一般很不欢迎这样的特殊用户总是用各种手段发现和禁止.最

iptables 封ip

要封停一个IP,使用下面这条命令: iptables -I INPUT -s ***.***.***.*** -j DROP 要解封一个IP,使用下面这条命令: iptables -D INPUT -s ***.***.***.*** -j DROP 参数-I是表示Insert(添加),-D表示Delete(删除).后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接. 此外,还可以使用下面的命令来查看当前的IP规则表: iptables -l

一个自动封IP防御DDOS脚本

DDoS deflate 工作原理 每分钟检测一次IP连接状况,当某些IP连接超过配置脚本限制的连接数,程序会自动禁止这些IP一段时间,以达到防御攻击的目的 DDoS deflate官方网站:http://deflate.medialayer.com/ Installation 安装 wget http://www.inetbase.com/scripts/ddos/install.sh  chmod 0700 install.sh  ./install.sh Uninstallation 卸载

nginx封ip,禁用IP段的设置说明

nginx的ngx_http_access_module 模块可以封配置内的ip或者ip段,语法如下: deny IP; deny subnet; allow IP; allow subnet; # block all ips deny all; # allow all ips allow all; 如果规则之间有冲突,会以最前面匹配的规则为准. 如何配置禁用ip或ip段呢? 下面说明假定nginx的目录在/usr/local/nginx/ 首先要建一个封ip的配置文件blockips.conf

使用python控制nginx禁封ip

python控制nginx禁封ip nginx中的access.log最近有大量的用户访问,怎么样屏蔽掉在一定时间段内访问次数多的ip呢? 测试准备: 两个tomcat,一个nginx做均衡负载,服务器上装有python3 python脚本 #服务器每60s循环一次,抓取到超过200次以上的ip地址写入rainbol_ip.conf文件中,重启nginx禁封生效 import time import datetime import os point = 0 while True: with op