短效代理各提取方式的区别
| |
**弹性提取** | **均匀提取** | **按量提取** | **通道提取 ** |
| ------------ | ------------------------------------------------ | -------------------------------------- | -------------------------------------------------------- | ---------------------------- |
| **定义**
| 按每天提取的IP数计费
| 按每分钟提取的IP数计费
| 按提取的IP数计费
| 按同时在线的IP数计费
|
| **资源池** | 默认中转池 | 默认中转池 | 默认中转池 | 中转池/隧道池 三选一 |
| **可选套餐范围** | 选择每天IP数 1000-200W个 | 选择每分钟IP数 5-2000个 | 选择IP包 1W-50W | 选择通道数 1-1000 |
| **IP存活时长** | 1分钟-30分钟 | 1分钟-30分钟 | 1分钟-30分钟 | 1分钟-30分钟 |
| **特点** | 自由度高,每天可任意选择时间段集中使用,不浪费IP | 每分钟有固定可提取量,开发比通道更平滑 | 自由度高,有效期内可自由安排使用IP,适合短时突发作为补充 | 同时在线的IP数明确,成本较低 |
| **适合用户场景** | 每天集中时间段使用IP,或不定时使用IP的客户 | 每小时都需要使用IP的客户 | 需短时间内集中大量使用IP的客户 | 每天业务不间断的客户 |
| | [了解详情>](https://www.qg.net/doc/product/6_255_252/2250.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2252.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2251.html) | [了解详情>](https://www.qg.net/doc/product/6_255_252/2253.html) |
*购买页中,仅通道提取保留多个资源池选项,其余提取方式将默认选中直连&中转的混合资源池。
##### 另外的,【企业定制】是青果特别推出针对企业客户的方案--基于峰值带宽进行收费,满足企业用户在日常运营中对大量IP资源的需求。
短效代理-使用指南-手动版
## 步骤总览

### **隧道池产品 首次提取之后,后续即会定时自动切换IP,不需要第4步重新获取哦**
**注:若使用白名单验证模式,请先添加白名单再进行IP提取。**
------------
代理IP产品 完成购买后,即可在控制台看到相关业务信息。
后续使用代理,最重要的便是密钥信息(隧道代理使用的是地址信息)。

下面介绍手动设置 使用代理的具体步骤。
## 一、授权验证
为保障用户使用代理的权益和安全性, 正式使用前需要进行授权验证。
青果支持白名单和帐密两种验证方式,可自主选择使用。
白名单模式,即把要实现代理的服务器IP添加进代理白名单中,后续使用该IP连接代理就能成功;
账密模式,即先获取该代理业务的密钥信息(即图中的Authkey与Authpwd),连接代理时填入进行验证就可使用代理。

详细操作可查看[代理验证 >](https://www.qg.net/doc/use/8_244/1574.html)
## 二、提取IP
确认好验证方式后,就可以开始提取IP了。
1.用户可以点击对应业务右侧的【更多】-【IP使用】-【提取IP】进入提取工具页面,也可以点击左侧导航栏的【提取工具】进入;

**请注意,**目前国内代理IP和全球HTTP的产品,除了按量提取对应的套餐是按量业务之外,其他产品都属于按时业务。
2.在提取工具页面,选择对应业务的Authkey,以及提取数量、地区、格式等其他选项,便可在页面下方看到链接,点击【打开链接】;

便可在打开的网页中看到此时提取到的IP地址。

## 三、测试使用
做好以上步骤之后,即可开始连接代理测试。
青果代理IP支持用户使用各种浏览器、代理客户端、电脑系统等等进行代理设置。
以谷歌浏览器chrome为例,设置代理需要1.在右上角菜单中点击【设置】,设置页面中选择【系统】-【打开代理设置】;

2.在新打开的弹窗页面中,把【使用代理服务器】按钮打开,并填写地址与端口信息,点击保存,就算启动代理连接了;
3.若使用的是账密验证,此时在浏览器打开一个新网页,会弹出以下会话,填写业务所对应的AuthKey以及AuthPwd信息,点击确认便能完成代理连接;

若使用的是白名单验证,则跳过该步骤。
4.此时进行正常的网页浏览,若能正常使用,就算代理连接成功了。
**[点击查看更多的浏览器、电脑系统、软件设置代理指南 >](https://www.qg.net/doc/2238.html)**
## 四、重新获取IP
青果代理IP产品都有相对应的IP存活周期,其有效时长是从提取到IP时算起,超过这个时长IP会失效。
IP到期失效之后,中转池的产品需要回到第一步重新提取IP,再将新ip信息填入代理服务器中进行使用。
**隧道池产品 是云端定时自动切换IP的,不需要重新获取哦**
短效代理-中转池
## 一、介绍
中转池,由大量的边缘节点汇聚而成,其基于的青果自营高性能代理服务器,通过中转+多线快速转发技术,代理更加高速稳定。
选择中转池的业务,用户提取到的IP将经过一层转发,以另外一个出口IP进行公网访问。出口IP是真实IP,且因为资源来自于大量边缘节点,中转池IP资源丰富且分散,业务成功率高。
中转池拥有400W+纯净IP,日去重IP达220W+,可选城市更多。
#### 示例
以下是中转池产品,提取IP接口的响应情况,可以看到
真实访问地址“proxy_ip“与代理服务地址”server“的地址不一样的两个IP。

## 二、资源池特点
- 流水丰富
- IP段分散
- 业务成功率高
## 三、适合客户群
- 有大量IP使用需求的客户
- 对采集成功率要求高的客户
短效代理-通道提取
## 一、提取方式介绍:
选择通道提取方式,意味着业务有效期内可同时在线使用的IP数是固定的。
每个通道在某个时刻可以使用一个IP。当这个IP的存活时长结束之后,通道可以提取一个新的IP来替代。如果你购买了多个通道,你可以在任何一个IP到期后重新提取新的IP,直到你正在使用的IP数量与你购买的通道数量相匹配为止。
通道提取提供较多的IP存活周期可选,包含1分钟/2分钟/3分钟/5分钟/1-5分钟/5-15分钟/15-30分钟,7种时长规格可选。
**注:**IP的存活周期是从提取到IP的那一刻开始算起的,超过这个时长IP会自动失效释放。

## 二、计费方式:
按同时在线的IP数(即通道数)计费,通道数的可选区间是1-1000个。
具体的产品套餐价格,还与选择的资源池、购买时长、IP存活时长相关,请以购买页为准。
## 三、适用场景:
1. IP使用量固定的业务场景
2. 每天业务不间断的场景
[开始选用【通道提取】套餐>](https://www.qg.net/business/proxyip.html?region=domestic&product_type=1&extract_mode=1)
Python自动化测试Selenium+chrome连接代理ip(账密模式)
此示例Python使用Selenium调用Chrome浏览器并通过代理进行自动化测试。
> 请注意:目前最高支持到Chrome 129.0.6614.3,后续版本暂不支持
- 代码示例
```python
import time
import string
import zipfile
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
targetURL = "http://myip.ipip.net" # 访问的目标站点
proxyHost = "61.171.76.145" # 代理IP地址
proxyPort = "50353" # 代理IP端口号
authKey = "x" # 代理IP的AuthKey
password = "x" # 代理IP的AuthPwd
def create_proxy_auth_extension(proxy_host, proxy_port, proxy_username, proxy_password, scheme='http',
plugin_path=None):
if plugin_path is None:
plugin_path = r'./{}_{}_qgnet_proxyauth_plugin.zip'.format(proxy_username, proxy_password)
manifest_json = """
{
"version": "1.0.0",
"manifest_version": 2,
"name": "Chrome Proxy",
"permissions": [
"proxy",
"tabs",
"unlimitedStorage",
"storage",
"
",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": ["background.js"]
},
"minimum_chrome_version":"22.0.0"
}
"""
background_js = string.Template(
"""
var config = {
mode: "fixed_servers",
rules: {
singleProxy: {
scheme: "${scheme}",
host: "${host}",
port: parseInt(${port})
},
bypassList: ["localhost"]
}
};
chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
function callbackFn(details) {
return {
authCredentials: {
username: "${username}",
password: "${password}"
}
};
}
chrome.webRequest.onAuthRequired.addListener(
callbackFn,
{urls: [""]},
['blocking']
);
"""
).substitute(
host=proxy_host,
port=proxy_port,
username=proxy_username,
password=proxy_password,
scheme=scheme,
)
with zipfile.ZipFile(plugin_path, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)
return plugin_path
if __name__ == '__main__':
# 此处指定您的webdriver路径,版本需要跟您所使用的Chrome版本一致,
# 下载地址https://registry.npmmirror.com/binary.html?path=chromedriver/
driver_location = "./chromedriver/chromedriver_v106_win.exe"
proxy_auth_plugin_path = create_proxy_auth_extension(
proxy_host=proxyHost,
proxy_port=proxyPort,
proxy_username=authKey,
proxy_password=password)
option = webdriver.ChromeOptions()
option.add_argument("--start-maximized") # 窗口最大化运行
option.add_extension(proxy_auth_plugin_path) # 添加proxy插件
# 此处selenium版本为4.8.0
driver = webdriver.Chrome(service=Service(driver_location), options=option)
driver.get(targetURL)
time.sleep(100)
driver.quit()
```
- 运行结果
[](https://cos.qg.net/uploads/image/20220916/d1a8b394a7d64cdd99b120803390ac56.png)
Python自动化测试Selenium+chrome连接代理ip(白名单模式)
此示例Python使用Selenium调用Chrome浏览器并通过代理进行自动化测试。
> 请注意:目前最高支持到Chrome 129.0.6614.3,后续版本暂不支持
- 代码示例
```python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
targetURL = "http://myip.ipip.net" #访问的目标站点
proxyAddr = "您的代理IP:端口号"
if __name__ == '__main__':
browser_location = r".\Chrome\chrome.exe" #指定浏览器路径位置
driver_location = r".\Chrome\chromedriver.exe" #指定Driver路径位置
option = webdriver.ChromeOptions()
option.binary_location = browser_location #设置浏览器位置
option.add_argument("--start-maximized") #窗口最大化运行
option.add_argument('--proxy-server=%(server)s' % {"server": proxyAddr})
driver = webdriver.Chrome(service=Service(driver_location), options=option)
driver.get(targetURL)
print(driver.page_source)
```
- 运行结果

长效代理-查询资源地区
## 1. 接口描述
接口请求域名: longterm.proxy.qg.net。
本接口 (/resources) 用于长效代理产品查询资源地区的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data | Array of [ResourceAreaISP](https://www.qg.net/doc/1839.html) | 资源地区列表。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://longterm.proxy.qg.net/resources?key=<您的key信息>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": [
{
"area": "福建省泉州市",
"area_code": 350500,
"isp": "电信",
"isp_code": 1,
"available": false
},
{
"area": "河南省商丘市",
"area_code": 411400,
"isp": "电信",
"isp_code": 1,
"available": true
}
],
"request_id": "51024a8b-a8a5-4e78-9301-cb500a8c083e"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
长效代理-查询通道数接口
## 1. 接口描述
接口请求域名: longterm.proxy.qg.net。
本接口 (/channels) 用于长效代理产品通道数查询的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data.toal | Integer | key的通道总数。 |
| data.idle | Integer | 空闲通道数。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://longterm.proxy.qg.net/channels?key=<您的key信息>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": {
"total": 10,
"idle": 5
},
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
长效代理-释放IP资源接口
## 1. 接口描述
接口请求域名: longterm.proxy.qg.net。
本接口 (/delete) 是用于长效代理-静态型产品释放IP资源的接口。(动态型无此功能)
默认接口请求频率限制:每通道一周有两次释放机会。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| task | 否 | String | 按提取批次释放。支持批量释放,用逗号隔开。比如:Z5p2DKKCSyhocKEa,xsQGWfoaX99WcYnU。 |
| ip | 否 | String | 按IP释放。支持批量释放,用逗号隔开。比如:129.123.7.89,23.11.112.51。 |
注意:task和ip必选其一。如果需要释放全部IP,用task='*'即可。
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------ | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://longterm.proxy.qg.net/delete?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ------------------------ | -------------------------------------------------------- |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |
| DELETE_LIMIT_EXCEEDED | 释放频率超出限制。 |
| STATIC_DELETE_TIME_LIMIT | 静态资源需要24小时后才能释放。 |
长效代理-查询在用IP资源接口
## 1. 接口描述
接口请求域名: longterm.proxy.qg.net。
本接口 (/query) 用于长效代理产品查询在用的IP资源的接口。
默认接口请求频率限制:60次/分钟。
推荐使用调试工具进行调试,[调试工具](https://www.qg.net/tools/IPdebug.html)。
## 2. 输入参数
| 参数名称 | 必选 | 类型 | 描述 |
| -------- | ---- | ------ | ------------------------------------------------------------ |
| key | 是 | String | 公共参数,产品唯一标识。 |
| task | 否 | String | 提取批次筛选。支持多批次筛选,用逗号隔开。比如:"Z5p2DKKCSyhocKEa,kAEaWHucf8iPXm0O"。 |
## 3. 输出参数
| 参数名称 | 类型 | 描述 |
| ---------- | ------------------------------------------------- | ------------------------------------------------------------ |
| code | String | 请求状态码。 |
| data.tasks | Array of [Task](https://www.qg.net/doc/1839.html) | 提取批次列表。
**注:Task结构中的IP结构中的server才是代理地址,proxy_ip是代理的真实出口IP。** |
| data.num | Integer | 提取批次数量。 |
| request_id | String | 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的 request_id。 |
## 4. 示例
#### 输入示例
```
GET https://longterm.proxy.qg.net/query?key=<您的key信息>&<其他输入参数>
```
#### 输出示例
```json
{
"code": "SUCCESS",
"data": {
"tasks": {
"task_id": "Z5p2DKKCSyhocKEa",
"ips": [
{
"proxy_ip": "123.54.55.24",
"server": "123.54.55.24:59419",
"area": "河南省商丘市",
"isp": "电信",
"deadline": "2023-02-25 15:38:36"
}
],
"num": 1
},
"num": 1
},
"request_id": "83158ebe-be6c-40f7-a158-688741083edc"
}
```
## 5. 错误码
| 错误码 | 描述 |
| ---------------------- | ------------------------------------------------------------ |
| INTERNAL_ERROR | 系统内部异常。 |
| INVALID_PARAMETER | 参数错误(包含参数格式、类型等错误)。 |
| INVALID_KEY | Key不存在或已过期。 |
| UNAVAILABLE_KEY | Key不可用,已过期或被封禁 |
| ACCESS_DENY | Key没有此接口的权限。 |
| API_AUTH_DENY | Api授权不通过,请检查[Api鉴权配置](https://www.qg.net/user/proxyIpManage)。 |
| KEY_BLOCK | Key被封禁。 |
| REQUEST_LIMIT_EXCEEDED | 请求频率超出限制。 |