推广项目难点-隐藏IP上
1、背景
类似网络爬虫从第三方接口获取数据包的时候,第三方平台接口会分析记录IP,根据IP判断异地登陆或者同一个IP请求此次过多会限制请求导致获取数据包异常。通过代理IP的方式当发现IP受限的时候换个IP继续请求接口获取数据包。
2、实现方案
2.1、注册芝麻代理(芝麻代理平台提供了大量可用的IP);
2.2、芝麻代理添加白名单后就可以根据平台提供的接口获取IP;
2.3、提取IP的有效时长收费标准不同,有效时长长的收费贵(根据业务需求选择),IP可以选择所在地域省份;
2.4、请求第三方接口爬数据的时候指定代理IP和端口即可(根据接口返回结果规定是否切换代理IP);
3、开发版本
3.1、V1.0基于数据库存储代理IP
3.1.1、初始化从芝麻代理获取10个IP存储到数据库,定时10s维护数据库IP池有10个代理IP;
3.1.2、请求第三方接口的时候从数据库随机获取一个代理IP,当代理IP被限制了就切换一个IP并且将受限制的IP从数据库IP池移除;
3.1.3、动态维护数据库IP池,当代理IP到失效时间就从数据库IP池移除;
3.2、V2.0基于Redis存代理IP
3.2.1、根据IP有效时长存储到redis设置有效时长的10个IP,当IP有效时长到了自动清理,redis中动态新增新的IP维护redis存储的IP池;
3.2.2、请求第三方接口的时候从redis存的IP池随机获取一个代理IP,当代理IP被限制了就切换一个IP并且将受限制的IP从redis存储的IP池移除;
4、项目场景
后台下单请求第三方接口的项目xx-secure-api调用第三方接口的时候没有IP限制,为了隐藏IP每隔几个小时切换一次代理IP