zoukankan      html  css  js  c++  java
  • 推广项目难点-隐藏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

  • 相关阅读:
    【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
    @MapperScan注解
    mongoRepository mongoTemplate
    Spring注解中@component
    正则表达式
    832. Flipping an Image
    Java---静态代码块、构造代码块、构造函数以及Java类初始化顺序[未完成]
    轻松学习正则表达式「转」
    771. Jewels and Stones
    java中的栈、堆、常量池和关于String类的理解
  • 原文地址:https://www.cnblogs.com/xx0829/p/11479947.html
Copyright © 2011-2022 走看看