proxysale

语言

列表自动更新的轮换代理,全天都有新鲜可用的代理地址

我们的代理在列表层面轮换。代理池全天变化,软件每次拉取链接,拿到的都是此刻可用的地址。

点状世界地图前的蓝色价格标签,地图上的网络节点彼此相连

列表层面的轮换

ProxySale 通过列表本身轮换代理。代理池全天都在剔除失效地址、加入新地址,软件每次请求列表链接,拿到的就是那一刻可用的集合。您不需要在我们这边设置轮换规则:每 8 到 10 分钟重新加载链接,列表就始终是最新的。

接下来由软件为每个请求挑选一行。多数采集器和 SEO 工具每发一个请求就随机取一个代理,出错时再换下一个,负载就分散到成千上万个地址上。

轮换代理为什么对采集器有帮助

搜索引擎、电商平台和比价网站会按 IP 统计请求。一个地址每分钟发几百个请求,就会撞上验证码或封锁。把同样的负载分散到轮换代理列表上,每个地址只发几个请求,目标看到的就接近普通访客。

轮换还能掩盖失效行。失败的请求会换一个地址重新发出,下一次重新加载列表时,坏掉的行就被剔除了。

在软件中设置轮换

  • A-Parser 和 ZennoPoster:把列表链接添加为代理来源,每 10 分钟重新加载。
  • Scrapy:把列表加载到一个 downloader middleware 中,每个请求随机选一行。
  • Python requests:把列表放在内存里,在 proxies 字典中传入随机一行。
  • bash 中的 curl:每次调用前用 shuf -n 1 取一行。

重新加载保持 8 到 10 分钟即可。每分钟一次的请求会被我们限速,代理池本来也变不了那么快。

轮换策略

  • 每个请求随机一行:最简单的方案,负载最均匀。
  • 一小串请求用同一行:适合网站期待几个相关请求的情况,比如搜索页和下一页结果。
  • 出错就换:一行能用就一直用,遇到验证码、超时或 403 就丢弃。
  • 冷却期:被封锁后,让该地址退出轮换 10 到 15 分钟。

多数采集器会把第一种和第三种结合起来:每个请求随机一行,出错立即更换。留意验证码和失败请求的比例。比例上升时,就增加地址或放慢速度。

您需要多少地址

统计发往最难目标的每分钟请求数,再除以单个地址能安全发送的数量。如果网站能容忍单个 IP 每分钟五个请求,而您需要 5,000 个,就至少准备 1,000 个可用地址,再为夜间的下降留出余量。更大的任务请看批量代理页面。

按目标选代理池:全球网站用 World MIX,欧盟网店和搜索用欧洲代理,Yandex 和区域电商平台用独联体代理,百度用中国代理。

需要固定地址的任务

有些工作需要长时间使用同一个地址:登录账号、保持购物车、运行指纹浏览器配置文件。轮换的套餐列表不太适合,因为地址可能离开代理池。这类工作请选 Max 代理池的住宅代理:家庭设备在线时,每条代理行都有自己的会话,时长 三分钟到一天。指纹浏览器代理页面介绍了配置文件的设置方法。

凡是读取公开页面的任务,轮换都更合适,每个请求的成本也更低。

每 10 分钟更新一次的列表文件

有些工具只能从文件读取代理。用一个每 10 分钟下载一次列表的小脚本,让这个文件保持新鲜。下面每个脚本都先写入临时文件,下载完整后才替换主文件,所以软件永远不会读到写了一半或空的列表。把 YOUR_LIST_LINK 换成控制面板里的列表链接。

Linux:shell 脚本加 cron

把脚本保存为 /opt/proxies/update-proxies.sh,用 chmod +x /opt/proxies/update-proxies.sh 赋予执行权限,然后手动运行一次。它会输出保存了多少个代理,链接无响应时则输出错误。

update-proxies.sh
#!/bin/sh
LIST_URL="YOUR_LIST_LINK"
DEST="/opt/proxies/proxies.txt"
TMP="$DEST.tmp"

mkdir -p "$(dirname "$DEST")"
if curl -fsS --max-time 60 -o "$TMP" "$LIST_URL" && [ -s "$TMP" ]; then
  mv "$TMP" "$DEST"
  echo "$(date '+%F %T') saved $(wc -l < "$DEST") proxies"
else
  rm -f "$TMP"
  echo "$(date '+%F %T') download failed, kept the old list" >&2
  exit 1
fi

用 crontab -e 打开定时任务,加入下面这一行。cron 会每 10 分钟启动一次脚本,并把输出追加到日志。以 root 身份运行,或者把两个路径都改成您主目录下的文件夹。

crontab
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1

Windows:PowerShell 加任务计划程序

把脚本保存为 C:\proxies\update-proxies.ps1,在 PowerShell 中运行一次,检查链接是否可用。

update-proxies.ps1
$ListUrl = "YOUR_LIST_LINK"
$Dest = "C:\proxies\proxies.txt"
$Tmp = "$Dest.tmp"

New-Item -ItemType Directory -Force -Path (Split-Path $Dest) | Out-Null
try {
    Invoke-WebRequest -Uri $ListUrl -OutFile $Tmp -UseBasicParsing -TimeoutSec 60
    if ((Get-Item $Tmp).Length -eq 0) { throw "empty list" }
    Move-Item -Force $Tmp $Dest
    $count = (Get-Content $Dest | Measure-Object -Line).Lines
    Write-Output "$(Get-Date -Format s) saved $count proxies"
} catch {
    Remove-Item $Tmp -ErrorAction SilentlyContinue
    Write-Output "$(Get-Date -Format s) download failed, kept the old list: $($_.Exception.Message)"
    exit 1
}

注册一个每 10 分钟运行脚本的任务:把命令粘贴到命令提示符或 PowerShell 中。任务在重启后依然有效,在任务计划程序中显示为 UpdateProxies。它在您登录期间运行;若要在没有登录会话时运行,请以管理员身份打开命令提示符,并在命令后加上 /RU SYSTEM。

cmd
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"

更习惯用鼠标?启动“任务计划程序”,点“创建基本任务”,触发器选每日,然后打开任务属性,设置“重复任务间隔 10 分钟,持续时间无限期”。操作为启动 powershell.exe,参数是 -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1。

任意系统:Python

Python 版本循环运行,不需要定时器。在终端、screen 或 tmux 中启动,或作为服务运行。需要 Python 3,不需要额外的包。

update_proxies.py
import time
import urllib.request
from pathlib import Path

LIST_URL = "YOUR_LIST_LINK"
DEST = Path("proxies.txt")
EVERY = 600

while True:
    try:
        data = urllib.request.urlopen(LIST_URL, timeout=60).read()
        if not data.strip():
            raise ValueError("empty list")
        tmp = DEST.with_name(DEST.name + ".tmp")
        tmp.write_bytes(data)
        tmp.replace(DEST)
        print(time.strftime("%Y-%m-%dT%H:%M:%S"), "saved", len(data.split()), "proxies", flush=True)
    except Exception as error:
        print(time.strftime("%Y-%m-%dT%H:%M:%S"), "download failed, kept the old list:", error, flush=True)
    time.sleep(EVERY)

让软件指向保存的文件,它读到的列表就始终不超过 10 分钟。请保持 10 分钟的间隔:更频繁的请求会被限速。

协议、价格与测试

每条轮换套餐代理行都在一个端口上支持 HTTP、HTTPS、SOCKS4 和 SOCKS5,见 SOCKS5 代理和 HTTP 代理。规模和时长见价格表,在联系页面可申请任一套餐 1 小时免费试用。

合适的套餐

不限量套餐 · 按时长计费

IP线程1 小时1 天7 天30 天每 1,000 IP 每天购买
30,000World MIX热门2,500$4.20$51.00$275$990$1.70购买
3,000欧洲热门1,000$1.70$15.50$77.00$277$5.17购买
1,000独联体500$1.00$10.00$52.00$187$10.00购买
200中国300$0.50$7.00$37.00$135$35.00购买

按 GB 计费方案 · 按流量计费

方案 · 每 GB 价格1–9 GB10–49 GB50–99 GB100–499 GB500–999 GB1,000–2,000 GB购买
Hybrid ISP服务商地址$1.49/ GB$1.39/ GB$1.29/ GB$1.15/ GB$1.05/ GB$0.95/ GB购买
Cell 移动热门4G 和 5G 网络$3.49/ GB$3.19/ GB$2.95/ GB$2.69/ GB$2.39/ GB$2.15/ GB购买
Start 住宅代理热门家庭 IP · 国家$0.85/ GB$0.79/ GB$0.72/ GB$0.65/ GB$0.57/ GB$0.49/ GB购买

全部按 GB 计费方案

问答

地址多久变化一次?

代理池全天更新。每 8 到 10 分钟拉取一次列表就能保持最新。

一个会话能保持同一个 IP 吗?

用套餐可以,只要地址还在代理池中:由您的软件决定使用哪一行。如需自选存活时间的 IP,请选住宅 Max:固定行的时长由您设定,三分钟到一天,家庭设备也可能提前离线。

为什么不每分钟重新加载?

比每隔几分钟再频繁就像刷请求,会被限速。

如何设置列表自动更新?

让软件每 8–10 分钟通过链接下载一次列表。如果软件做不到,就用定时脚本更新文件:上文有适用于 cron、Windows 任务计划程序和 Python 的现成版本。

套餐的轮换和按 GB 计费方案的轮换有何不同?

套餐里变化的是列表本身:地址有进有出,由你的软件选择用哪一行。按 GB 计费方案由网关负责轮换:轮换行每次请求换新 IP,固定行按会话 ID 保持地址。

为什么列表里有些地址没有响应?

列表在一天中不断变化,上次下载之后,有的地址可能已经离开代理池。每 8–10 分钟重新下载一次,失效行的比例就会保持在低位。

从一小时或 1 GB 开始

验证后用免费 1 小时测试套餐,或买 1 GB 任意按 GB 计费方案,跑一遍你的软件,留下适合任务的形式。

打开控制面板