分享页面

隧道代理 Python 语言接入指南

概述

本文档将指引你进行隧道代理的接入,在此文档中使用到的术语将会在下方进行列出。

术语 解释
隧道 自动更换代理 IP 的代理服务
固定时长 服务器将在固定时长后自动切换IP,例如1分钟
通道 使用多个通道同时发起请求,每个通道的IP不同

隧道代理有多种使用方式,具体行为取决于套餐及模式。

  • 普通模式

每次请求都自动切换IP

  • 普通模式指定地区

普通模式下,希望可以指定地区(仅适用于全球HTTP隧道代理),具体参考海外区域编码中的青果编码。

  • 普通模式打标记

普通模式下,希望多个HTTP请求保证代理IP相同,可以给多个请求的代理协议打上相同的标记,并标记这个代理IP的存活时间(不主动设置存活时间则默认为10秒)

  • 固定时长多通道模式

服务器定时切换IP,可同时使用多个通道发起请求,即可以同时使用多个IP

前置知识

在 Python 语言中,通常使用 requests 进行 http/s 代理的设定与请求的发送

Proxy Url Scheme

由协议、用户名、密码、域名、端口几部分组成

例如 http 协议的代理 url

http://[user:password@]hostname:port

pip

Python 的包管理工具,可以简单的进行依赖管理

使用 Python 接入

以下内容假设读者具备基本的 Python 使用经验和对网络协议具有一定的了解。

安装 requests

pip3 install requests

生成 url

普通模式

proxyUrl = "http://%(user)s:%(password)s@%(server)s" % {
    "user": authKey,
    "password": password,
    "server": proxyAddr,
}

普通模式指定地区(仅适用于全球HTTP隧道代理)

proxyUrl = "http://%(user)s:%(password)s:A%(area)d@%(server)s" % {
    "user": authKey,
    "password": password,
    "server": proxyAddr,
    "area": area,
}

普通模式打标记

proxyUrl = "http://%(user)s:%(password)s:%(channel)s:%(ttl)d@%(server)s" % {
    "user": authKey,
    "password": password,
    "channel": "channel-1",
    "ttl": 20,
    "server": proxyAddr,
}

固定时长多通道模式(该模式仅适用于2024年5月17日前购买的隧道代理固定时长多通道产品)

proxyUrl = "http://%(user)s:%(password)s:%(channel)s@%(server)s" % {
    "user": authKey,
    "password": password,
    "channel": "channel-1",
    "server": proxyAddr,
}

设置代理地址

http/s 均适用该地址

proxies = {
    "http": proxyUrl,
    "https": proxyUrl,
}

执行 HTTP/s 请求

以 https://api.ipify.org 为例

resp = requests.get("https://ip.cn/api/index?ip=&type=0", proxies=proxies)

读取响应实体

resp.text 是字符串类型,可以直接打印

print(resp.text)

示例代码

import requests

proxyAddr = ""
authKey = ""
password = ""

proxyUrl = "http://%(user)s:%(password)s@%(server)s" % {
    "user": authKey,
    "password": password,
    "server": proxyAddr,
}

proxies = {
    "http": proxyUrl,
    "https": proxyUrl,
}

resp = requests.get("https://api.ipify.org", proxies=proxies)
print(resp.text)
本文导读