爬虫使用ip代理注意事项

b b b

爬虫使用ip代理注意事项

  由于爬虫爬取速度过快,可能会遇到同一个IP访问过于频繁的问题,网站就会让我们输入验证码再登录或直接封锁IP,这样会给爬取带来极大的不便。

 

 

  通过使用代理服务器软件隐藏IP,在爬取过程中不断更换ip地址,就不会被封锁,达到很好的数据成果。即使用了ip代理,也不能百分百的保障不会遇到问题,或者IP不会被封,在使用的过程中可能会因为行为问题暴露了,又或者是ip修改器有效性低,导致出现的问题,还有其他的一些原因也会影响到这样的后果,解决这些问题也是有方法的。

 

  1、web端做了一层缓存

 

  挑选一定数量的ip,每隔2-3分钟,进行检测,这个检测就不需要是爬取的网站的url,因为测试过能够连接代理访问即可,例如baidu之类的比较大众的网站.

 

  2、使用了bloomfilter进行判重

 

  获取的ip代理可能之前有判定重复的,通过检查判重,减少资源消耗。每隔一定时间bf会被清空,python本身自带bf,当时好像遇到什么问题了,实际使用与需求有点不符,具体记不清楚了,最后摒弃了自带的bf,使用了别人的一个bf on redis的项目.paramiao/pydrbloomfilter其实我就是想用用bf而已.造轮子花费时间,就暂时不造了.

 

  3、ip代理通过轮询的方式给出

 

  后续想更新算法,根据时间与计数挑选。

 

  4、多进程进行ip判定

 

  防止数量太多进程一直运行.目前判定进程数是直接配置在配置文件中的,后面想做到自适应.

 

  5、数据库使用redis

 

  redis这里作为两点,一个是数据存储,一个是web的缓存.而且redis本身又不是很大.用在这里很适合.而且bf-redis项目中,也在使用redis.

 

  6、目标网站检测使用的反爬虫方式

 

  ip代理,随机agent,带cookie访问。

 

  由于IP会失效,这可能会遇到许多问题,大家对于找出原因,对症下药处理,使用动态ip海,海量的IP资源随意切换,高匿名ip代理可以更好的隐藏起用户的真实IP。

 

版权声明:本文为ipadsl.cn所属公司原创作品,未经许可,禁止转载!