重新思考,如何搭建一套简易高效的隧道代理

近期上线了基于http的隧道代理api业务,核心目标只有一个,就是用最简单的方式去灵活应对不同的代理使用场景。

有隧道代理需求可直接阅读使用文档,本文主要介绍为什么要推出这样一款基于api的隧道代理服务。

也欢迎大家关注iDataRiver平台 https://idatariver.com/zh-cn ,将会持续供应更多优质服务。

隧道代理的出现

先谈谈为什么会出现隧道代理这个东西,本质原因就是使用便捷,懒惰是生产力的巨大推力,而隧道代理则很好的满足了省时省力的特点。

传统的代理业务基本上都是提供一批ip:port列表,用户需要自己维护一个ip代理池,这个池子要做很多事情。

比如代理失效时需要监测到并剔除。需要自行控制代理的使用间隔,间隔太短容易被风控,间隔太久则利用率不足。需要定期监控代理池里的可用代理数量,如果太少了需要及时补充。以上功能都需要花费较多精力去维护使用,也就是说在业务还没开始使用的情况下要先花精力去维护一个代理池。

而且提取代理基本上是按条数收费的,但有些场景下条数与我们的使用量并不呈线性关系,因为提取出来的代理不管有没有用,都会进行扣费。

基于以上原因,如果有一个服务能直接满足上面的功能,且按使用量扣费,则会极大简化使用门槛,而隧道代理则刚好是做这件事的。

当前隧道代理现状

通过调研隧道代理的市场现状,我们总结了以下几点值得改进的地方。

起步价高

大多数都设置了预购门槛,对新用户不友好,因为几乎所有业务都需要在一开始使用较低成本去验证代理是否能满足业务需求。

限制使用时长

绝大多数服务商会限制流量包的有效期,一般是一个月,短的也有一星期,这种情况下对业务使用不规律的场景不友好,很可能购买的流量包还没用完就已经过期了,造成不必要的浪费。

代理类型参差不齐

常见的代理场景主要是数据中心代理,住宅代理和移动代理,而且每种代理都支持按照国家/城市定位进行筛选。目前市面上各供应商在这方面参差不齐。

依旧存在一定使用门槛

在使用不同代理类型或进行地区切换的时候,需要的文档繁琐,虽然比传统代理简洁,但依旧有上升空间。

我们的优化

当前常规的隧道代理使用HTTP(s)/SOCKS5协议进行调用,但是这种方式并不清晰,考虑到需要在调用的时候传入用户鉴权信息,代理类型,国家切换等各种参数,这些参数只能放在proxy url里拼接后发给服务端,随着控制场景的细化,proxy url会变得很不优雅。

考虑到使用隧道代理的绝大多数场景都是api的代理请求,因此直接将代理的使用内置在api请求里即可,这样使用代理就跟发起一个普通请求一样方便,至于控制代理场景的配置参数则可以很方便的在json payload里设置字段控制。

优化调用

下面以python的requests库对比两种使用

传统的代理使用如下

python 复制代码
import requests

proxies = {
    'http': 'http://userid-proxytype-1-proxycountry-us-***:[email protected]',
    'https': 'http://userid-proxytype-1-proxycountry-us-***:[email protected]',
}

res = requests.get('https://google.com', proxies=proxies)

优化后使用如下

python 复制代码
import requests

payload = {
    'apikey': 'idr_****',
    'proxy_type': '1',
    'proxy_sid': '',
    'proxy_country': 'us',
    'url': 'https://google.com',
    'method': 'GET',
}

res = requests.post('https://api.idatariver.com/proxy/request', json=payload)

可以看到所有的代理控制参数都在payload里清晰可见,而不是放在proxy url里进行字符串拼接,同时对于鉴权场景也非常简单,只需要传入apikey即可标识用户进行扣费。

可自定义是否切换ip

默认情况下每次请求都会随机更换ip。

在某些场景下,你需要在同一个会话中的多次请求中保持同一个ip,为了防止每次ip自动切换,你可以通过设置 proxy_sid 来保持ip不变。

如果不传 proxy_sid 或传入空字符串,则每次请求都会随机更换ip

考虑到ip代理的存活时间具有不稳定性,建议将会话时长控制在5分钟内,否则可能会失效。

支持范围广

可无缝接入全球两百多个国家。

优化计费方式

此外,我们在response headers里返回了自定义参数,告诉用户本次请求实际消费积分数量等,做到计费清晰明了。

通过优化计费方式,对于绝大多少场景来说,都按照调用次数扣费,所以并不需要提前购买流量包,因此没有预购门槛,同时也没有流量有效期,这对初始用户将会非常优化。

而对于单个请求流量较大的场景,我们会对超出部分的流量进行按流量计费,扣费明细将会返回在header里的x-idatariver-credits字段里。

简而言之,在一个http请求里,你可以灵活的使用我们所有的代理产品场景,而无需预购套餐包。

总结

通过对当前隧道代理市场的现状分析,我们结合用户最关心的使用体验进行了多处优化,通过一个简单的http请求便可访问我们所有的代理产品,而无需在后台做各种配置,感兴趣的可直接前往使用 https://idatariver.com

相关推荐
IP管家14 小时前
多级路由器如何避免IP冲突
网络·网络协议·tcp/ip·游戏·智能路由器·ip
熊文豪1 天前
Java+Selenium+快代理实现高效爬虫
java·爬虫·selenium·隧道代理·快代理
迎风打盹儿2 天前
MATLAB仿真定点数转浮点数(对比VIVADO定点转浮点)
matlab·ip·vivado·定点数·浮点数
亿牛云爬虫专家4 天前
视觉爬虫开发:通过Puppeteer截图+CV定位动态元素坐标
爬虫·爬虫代理·puppeteer·代理ip·小红书·截图·动态元素
霖005 天前
FPGA中级项目7———TFT显示与驱动
经验分享·fpga开发·学习方法·显示器·ip·集成学习
神里流~霜灭6 天前
Linux系统基础:基础指令简介(网络概念部分)
linux·c++·协议·ip·tcp
亿牛云爬虫专家10 天前
动态渲染页面智能嗅探:机器学习判定AJAX加载触发条件
机器学习·ajax·数据采集·爬虫代理·代理ip·微博·渲染页面
Silence4Allen10 天前
Pycharm 代理配置
ide·python·pycharm·proxy·代理
知了一笑11 天前
通过IP计算分析归属地
java·ip·ip定位·ip计算
刘大猫.11 天前
Centos Ubuntu RedOS系统类型下查看系统信息
linux·ubuntu·centos·ip·ifconfig·redos·查询系统信息