每次检查都下载整个页面
检查 店铺有没有 JSON 接口?有没有返回 ETag 或 Last-Modified?
处理 改为轮询 JSON 接口并带 If-None-Match;没有 ETag 时只比较你需要的字段。
补货监控要每隔几分钟向同一批页面问同一个问题。零售网站会限制单个 IP 的请求数,超了就返回 HTTP 429——一个服务器 IP 盯几百个商品,往往恰好在补货那一刻被限流。
少问一点:很多店铺用很小的 JSON 提供库存,Shopify 的商品接口 /products/<商品>.js 会返回整个商品和每个款式的 available。服务器带了 ETag 时,用条件请求再问,库存没变就返回 304 Not Modified,不传内容。
库存可能按地区不同(Google Merchant Center 就允许商家按地区设置是否有货),所以要从你关心的那个国家查。跨境卖家盯竞品断货、补货,用机房 IP 轮询成本最低、按 IP 固定收费;只有店铺拦截服务器 IP 时,才换动态住宅。国内网络无法直接连接海外代理,本机运行先开 控制台 → 连接工具 → 辅助工具。
可使用方向键横向滚动,阅读完整内容。
| 比较项目 | 选择 | 原因 |
|---|---|---|
| 产品 | 静态机房代理 | 固定 IP,按 IP 和租期计费,全天候轮询成本可预期 |
| 店铺拦截服务器 IP 时 | 动态住宅,「指定地区 / 保持 IP」 | 店铺所在国家的家庭宽带 IP,按流量计费 |
| 买几条 IP | 足够让每条 IP 都低于店铺的频率限制 | 把商品清单分摊到多条 IP,不要全压在一条上 |
| 国家 | 店铺所在市场;机房 IP 可选美国、加拿大、英国、德国、荷兰、日本、韩国、新加坡 | 是否有货可能按地区不同 |
| 协议 | HTTP | requests、httpx、Node.js 客户端直接支持 |
| IP 会变吗 | 租期内不变 | 到期前在「我的资产」续费,继续用同一批 IP |
下面的按钮会打开「静态机房代理」并选好「AI 与自动化」场景,付款前选好地区、租期、协议和「数量」(一次最多 100 个 IP)。
可使用方向键横向滚动,阅读完整内容。
| 比较项目 | 静态 ISP | 动态住宅 | 机房(数据中心) |
|---|---|---|---|
| 你得到什么 | 一条独享的家庭宽带 IP,租期内一直归你 | 真实家庭宽带 IP:可轮换出口,也可在指定国家或城市保持粘性会话 | 速度快的固定机房 IP,支持 HTTP / SOCKS5 |
| 价格 | 按 IP 和租期,下单页实时报价 | 低价线路 US$1.50/GB(100 GB 套餐 US$1.35/GB);优质线路 US$5.00/GB | 按 IP 和租期,单 IP 成本最低 |
| 最适合库存监控 | 需要固定家庭 IP 的下单账号 | 拦截服务器 IP 的店铺;按城市看库存 | 接受服务器 IP 的店铺和 JSON 接口的高速轮询 |
价格以美元计。钱包充值一次,各类线路都从钱包付款;不会自动续费,想保留 IP 请在「我的资产」里续费。
点下面的按钮,打开「静态机房代理」(按 IP 和租期),场景已选「AI 与自动化」。在「连接配置」里选「地区」和「租期」,「协议」选 HTTP,「数量」填准备用来分摊商品的 IP 条数(一次最多 100 个),点「确认费用并生成」。
在「我的资产」点「复制」得到「地址:端口:用户名:密码」,为每个监控进程写成 PROXY_URL = http://用户名:密码@地址:端口。国内网络先开辅助工具。
用下面的代码:请求商品 JSON,带上上次的 ETag(If-None-Match),只有拿到 200 且 available 为 false 才算断货。
预期结果 第一次打印有货的尺码;库存没变时打印 304,不下载内容。
有货列表变了才发通知(微信、钉钉、Discord 都行);检查出错时保留上一次的状态。
可使用方向键横向滚动,阅读完整内容。
# pip install requests
import os
import time
import requests
PROXY = os.environ["PROXY_URL"] # static datacenter IP from My assets: http://USER:PASS@HOST:PORT
PROXIES = {"http": PROXY, "https": PROXY}
URL = "https://store.example.com/products/limited-sneaker.js" # Shopify product JSON
session = requests.Session()
etag, last = None, None
for _ in range(3): # in production, let your scheduler run each check
headers = {"If-None-Match": etag} if etag else {}
try:
r = session.get(URL, headers=headers, proxies=PROXIES, timeout=20)
status = r.status_code
except requests.RequestException as exc: # proxy refused (407), timeout or connection error
status = type(exc).__name__
if status == 304:
print("unchanged (304, no body downloaded)")
elif status == 200:
etag = r.headers.get("ETag")
in_stock = [v["title"] for v in r.json()["variants"] if v["available"]]
if in_stock != last:
print("in stock:", in_stock or "none")
last = in_stock
else:
print("unknown, keeping last state:", status) # never turn an error into "sold out"
time.sleep(30)2026-10-18 用 requests 2.33.1 经本地带密码的代理,对返回 ETag 的 HTTP 和 HTTPS 本地店铺接口实测:第一次打印有货尺码,后两次返回 304、没有下载内容;密码错误时每次都输出 unknown,并保留上一次的状态。
检查 店铺有没有 JSON 接口?有没有返回 ETag 或 Last-Modified?
处理 改为轮询 JSON 接口并带 If-None-Match;没有 ETag 时只比较你需要的字段。
检查 是不是把所有非 200 都当成了无货?
处理 出错时保留上一次的状态;只有 200 且 available 为 false 才是断货。
检查 每条 IP 负责多少商品、多久查一次?
处理 加 IP、把商品分摊开;卖得慢的商品降低检查频率。
检查 是从店铺所在国家查的吗?选对了地区或门店吗?
处理 用店铺所在市场的 IP,请求里带上店铺的地区或门店参数。
店铺接受服务器 IP 就用固定机房 IP,轮询快、成本低;店铺拦截服务器 IP 时用动态住宅。
没有放之四海皆准的频率。先慢后快,观察是否出现 429,遵守 Retry-After,热门商品单独用一条 IP。
让每条 IP 都低于店铺的限制即可:把商品清单分摊到多条 IP,出现 429 就再加。
只在服务器返回 ETag 时有效。Shopify 商品 JSON 会给出每个款式是否有货,会不会返回 304 取决于店铺服务器。
可以,针对公开商品页,并遵守各站条款;如果网站拦截或频繁验证服务器 IP,就把它换到动态住宅。
官方文档 · 核对于:
官方文档 · 核对于:
官方文档 · 核对于:
官方文档 · 核对于:
产品观察 · 核对于:
动态住宅按 GB 价格以价格页和控制台为准(低价线路 US$1.50/GB,100 GB 套餐 US$1.35/GB;优质线路 US$5.00/GB;1 PTC = 1 美元)。静态 ISP 和机房 IP 按数量和租期实时报价。
产品观察 · 核对于:
选项名称、计费方式与限制以 2026-10-18 线上控制台为准:线路(优质 / 低价)、出口模式、地区、州 / 省、城市、协议(HTTP / SOCKS5)、数量(1–500)、租期、自动续租 IP(暂未开放),我的资产 → 复制 / 轮换 / 续费 / 复制给 AI。动态住宅入口为 proxy.proxy302.com:2222(HTTP)和 :3333(SOCKS5)。 2026-10-18 只读核对生产目录:静态机房 IP 在售 8 个国家——美国、加拿大、英国、德国、荷兰、日本、韩国、新加坡。
本地示例 · 核对于:
2026-10-18 在本地带密码的 HTTP 代理夹具上运行了本段代码(凭据错误时返回 407);requests 2.33.1 对一个会返回 ETag 的本地店铺接口实测:第一次检查打印出有货的尺码,后两次返回 304 Not Modified,没有下载内容;普通 HTTP 和经 CONNECT 隧道的 HTTPS 都实测过。密码错误时代理拒绝建立隧道(407),每次检查都输出 unknown, keeping last state,脚本不会中断。
本地实测只证明配置写法和认证路径正确,不代表能访问任何具体网站、国家或平台。
产品观察 · 核对于:
控制台「连接工具」页提供辅助工具(Windows / macOS 全局代理);「我的资产 → 复制给 AI」生成的说明写明:在中国大陆使用代理前需先打开辅助工具或已连上 VPN。
注册账号、一次充值,即可选择动态住宅、静态 ISP 或数据中心出口。动态住宅覆盖 195+ 国家与地区。