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

  • 相关阅读:
    C#多线程学习(四) 多线程的自动管理(线程池)
    CHR6dm 校准软件下载
    WinAPI打开串口失败
    AHRS(航姿参考系统)和IMU(惯性测量单元)的区别【转】
    课程1:开始Direct3D
    CHR6dm datasheet 中文翻译
    从D3D将画面渲染至桌面
    Hello GPU
    linux配置java环境变量(详细)
    java中的多线程
  • 原文地址:https://www.cnblogs.com/xx0829/p/11479947.html
Copyright © 2011-2022 走看看