Web Unlocker 与住宅代理与移动代理:何时需要哪种
我们从数据中心服务器、通过普通住宅代理和通过 web unlocker 获取了相同的 URL。有些网站不需要任何东西,有些只需要住宅 IP,有些只对 unlocker 开放,还有五个仍然被阻止。以下是每一层解决的问题,以及移动层的适用场景。
住宅代理更改请求的来源。web unlocker 还会更改请求的外观:它在真实浏览器 TLS 指纹下发送请求,在新 IP 上重试,并在出现 JavaScript 挑战时运行无头浏览器。只有在干净的住宅 IP 仍被阻止时,您才需要 unlocker。否则,代理就足够了。
这就是理论。为了验证它,我们在 2026 年 9 月 29 日以三种方式获取了相同的 URL,并逐个网站保留了结果。有些页面根本不需要任何东西,有些只需要住宅 IP,有些只对 unlocker 开放,无论我们做什么,五个仍然被阻止。下表显示了哪些是哪些。
- 不需要代理:docs.python.org、books.toscrape.com、Hacker News、Wikipedia 和 GitHub 从数据中心服务器的普通请求中响应。
- 住宅代理足够: Zillow 和 Leboncoin 阻止了数据中心服务器,但通过普通住宅代理提供了真实页面。
- 只有 unlocker 通过: Indeed、Glassdoor、Walmart 和 Best Buy 拒绝了普通客户端,并通过 unlocker 返回了页面。
- 仍然被阻止: Home Depot、eBay、DoorDash、StockX 和 Realtor.com,每个都报告了错误状态和阻止类,而不是虚假的 200。
- 移动出口不在此次测试范围内。我们解释了它们的适用场景,但没有测量数据可展示给您。
我们的测试方法
每个 URL 在 2026 年 9 月 29 日以三种方式获取。首先,从法兰克福的数据中心服务器使用 Chrome User-Agent 进行普通 curl 请求。其次,通过 QuantumProxies.io 住宅代理使用美国出口(Leboncoin 使用法国出口)进行相同的普通 curl 请求。第三,通过 Web Unlocker 转发代理在住宅层进行请求,使用相同的出口国家。状态是客户端看到的最终 HTTP 状态。时间是一个 unlocker 请求的墙钟时间。
这是一天内从一个地方进行的一次运行,而不是基准测试。反机器人规则每周更改,周一通过的网站可能在周二被拒绝。测试工具或 unlocker 本身返回内部错误的行被排除在外:它们既不是通过也不是阻止,将它们计入任何一种情况都会误导您。使用表格查看模式,并重新测试您关心的网站。
每一层解决的问题
现代的机器人墙在发送页面之前会检查几个方面,每个工具解决不同的子集。知道您遇到的是哪种墙可以告诉您该购买什么。
| 墙 | 网站检查的内容 | 普通住宅代理 | Web Unlocker(住宅) | Web Unlocker,移动层 |
|---|---|---|---|---|
| IP 信誉 | IP 所属的网络及其历史 | 解决数据中心范围的阻止 | 住宅出口,每次重试使用新 IP | 4G/5G 运营商 IP,由许多手机共享 |
| TLS 和 HTTP 指纹 | 握手、HTTP/2 设置和头部顺序 | 无变化:仍然是您的客户端 | 浏览器指纹,重试时旋转 | 与住宅相同 |
| JavaScript 挑战 | 客户端是否运行页面的脚本并保留其 cookie | 否 | 升级到无头浏览器 | 与住宅相同 |
| 交互式验证码 | 为人类设计的任务 | 否 | 未解决;报告为失败,从不为 200 | 未解决 |
第一行是大多数抓取器开始的地方,也是住宅代理物有所值的地方。托管范围很容易识别,许多网站直接拒绝它们。第二行是为什么有时干净的 IP 不够:curl、Python 或 Node 的 TLS 握手看起来与 Chrome 的完全不同,Cloudflare 将 JA3/JA4 指纹 记录为识别客户端的一种方式。我们关于 TLS 指纹 的指南对此进行了深入探讨。第三行需要一个真实的 JavaScript 引擎。第四行需要一个人,而此页面上的任何产品都不提供。

不需要任何代理的网站
从这里开始,因为这是最便宜的结果。这些页面从数据中心服务器的普通请求中响应。通过其他任何东西发送它们都会增加成本和延迟,而没有任何收益。
| 网站 | 普通,数据中心服务器 | 普通,住宅代理 | Web Unlocker |
|---|---|---|---|
| docs.python.org | 200 | 200 | 200, 1.6 s |
| books.toscrape.com | 200 | 200 | 200, 1.9 s |
| news.ycombinator.com | 200 | 200 | 200, 4.1 s |
| en.wikipedia.org | 200 | 200 | 200, 1.9 s |
| github.com(存储库页面) | 200 | 200 | 200, 2.0 s |
| bbc.com(技术) | 302 重定向 | 302 重定向 | 200, 1.4 s |
BBC 302 是重定向,而不是阻止。我们的测试客户端没有跟随重定向,任何跟随重定向的客户端都会到达页面。
普通住宅代理足够的地方
| 网站 | 普通,数据中心服务器 | 普通,住宅代理 | Web Unlocker |
|---|---|---|---|
| Zillow(奥斯汀房源) | 403,PerimeterX '访问此页面已被拒绝' | 200,真实房源页面 | 200,1 次尝试,2.7 s |
| Leboncoin(搜索,法国出口) | 403,验证码页面 | 200,真实结果页面 | 200,1 次尝试,1.4 s |
| Amazon(产品页面) | 200,产品页面 | 200,产品页面 | 200,2 次尝试 + 浏览器,10.2 s |
Zillow 和 Leboncoin 是为住宅代理而建的案例。数据中心 IP 被拒绝,而来自家庭 IP 的相同请求得到了页面。unlocker 也有效,但它没有增加您需要的东西。
Amazon 是警示行。此运行中,两个普通客户端都获得了产品页面,但 unlocker 需要两次尝试和一个浏览器才能返回,并花费了 10.2 秒。unlocker 计费每个移动的字节,包括重试和浏览器加载。在不需要的页面上,您为额外的工作付费。这是一天内的一个请求,所以不要将其视为关于 Amazon 的规则。将其视为关于首先测试普通的规则。
只有 web unlocker 通过的地方
| 网站 | 普通,数据中心服务器 | 普通,住宅代理 | Web Unlocker |
|---|---|---|---|
| Indeed(工作搜索) | 403,'安全检查' 页面 | 403,'启用 JavaScript 和 cookies 以继续' | 200,1 次尝试,2.6 s |
| Glassdoor(公司评论) | 403,带验证码的'安全'页面 | 403,'启用 JavaScript 和 cookies 以继续' | 200,2 次尝试 + 浏览器,17.2 s |
| Walmart(搜索) | 307 重定向,无结果页面 | 307 重定向,无结果页面 | 200,1 次尝试,4.8 s |
| Best Buy(笔记本电脑类别) | 连接失败,无响应 | 连接失败,无响应 | 200,1 次尝试,6.3 s |
在这里,单独的住宅 IP 没有帮助。Indeed、Walmart 和 Best Buy 在 unlocker 的第一次 TLS 尝试中通过,没有浏览器。unlocker 的出口是我们普通测试使用的不同住宅 IP,所以这不是一个受控实验。然而,普通住宅列已经有一个干净的家庭 IP 并失败了,显而易见的剩余区别是请求的外观。Glassdoor 走得更远:它需要 JavaScript,所以 unlocker 需要两次 TLS 尝试,然后是无头浏览器,这就是为什么它花费了 17.2 秒。
Walmart 需要一个单独的说明。我们没有记录其 307 重定向指向哪里。我们只知道普通客户端没有收到结果页面,而 unlocker 收到了。
仍然失败的内容以及阻止类告诉您的内容
诚实的比较也需要失败。这五个拒绝了普通客户端和 unlocker。unlocker 返回了一个错误状态并告诉我们原因,而不是将阻止页面作为 200 通过:
| 网站 | 普通,数据中心 / 住宅 | Web Unlocker 状态 | x-qp-block-class | x-qp-vendor |
|---|---|---|---|---|
| Home Depot(类别页面) | 403 / 403 | 403,2 次尝试后 | ip_reputation | akamai |
| eBay(搜索) | 403 / 403 | 403,2 次尝试后 | ip_reputation | akamai |
| DoorDash(城市页面) | 403 / 403 | 403,2 次尝试后 | ip_reputation | cloudflare |
| StockX(产品页面) | 403 / 403 | 403,'Just a moment...' | js_challenge | cloudflare |
| Realtor.com(搜索) | 429 / 429 | 429,2 次尝试后 | fingerprint | kasada |
阻止类是有用的部分。Home Depot、eBay 和 DoorDash 上的 ip_reputation 意味着出口 IP 本身被拒绝,因此更好的指纹不会有帮助。StockX 上的 js_challenge 意味着 Cloudflare 的挑战页面在浏览器尝试后仍然存在。Realtor.com 上的 fingerprint,其响应 429(RFC 6585 将其定义为请求过多),意味着客户端本身被拒绝。每一个都指向不同的下一步,其中一个是移动层的适用场景。
移动层的适用场景
移动运营商将许多手机放在每个公共 IP 后面(运营商级 NAT),因此阻止运营商地址的网站有可能阻止真实客户。这就是为什么运营商 IP 往往比住宅范围更受信任的原因。我们在 为什么移动代理受信任:CGNAT 中解释了这一机制。
Web Unlocker 有一个移动层,在 4G/5G 运营商出口上运行相同的逻辑(浏览器指纹、重试、浏览器升级、阻止报告)。您可以在代理用户名中使用 -tier-mobile 或在 REST 端点上使用 "tier": "mobile" 选择它。它有自己的预付 GB 余额,速度较慢,每 GB 的成本比住宅层高。它适用于拒绝住宅范围的网站,这正是住宅层上的 ip_reputation 阻止所暗示的。
关于本文的限制要明确:我们没有在此测试中运行移动层。我们不能告诉您它是否能获取 Home Depot、eBay 或 DoorDash 的页面,我们也不会猜测。如果这些是您的目标,请在购买流量前在移动层上测试它们。它不会帮助解决 captcha 或 fingerprint 阻止,因为这些与 IP 无关。对于没有 unlocker 的移动、住宅和 ISP 代理的总体问题,我们的 移动、住宅和 ISP 代理的比较 涵盖了这一点。
Python 中的成本意识升级梯子
表格指向一个规则:只爬到网站强迫您爬的高度。此函数按顺序尝试每个阶梯,并在第一个返回真实页面的地方停止。只有在住宅层报告 ip_reputation 阻止时才移动到移动层。HEADERS 和 looks_blocked() 是我们 Python 中的 web unlocker API 教程 中的助手。
import os
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
RESIDENTIAL = os.environ["QP_RESIDENTIAL_PROXY"] # http://USER:PASS@HOST:PORT from your residential plan
UNLOCK_USER = os.environ["QP_UNLOCK_USER"] # unlock-XXXXXXXX
UNLOCK_PASS = os.environ["QP_UNLOCK_PASSWORD"]
def unlocker(extra: str = "") -> dict:
u = f"http://{UNLOCK_USER}-country-us{extra}:{UNLOCK_PASS}@unlock.quantumproxies.io:9000"
return {"http": u, "https": u}
LADDER = [
# name, proxies, verify, timeout
("plain", {}, True, 30),
("residential", {"http": RESIDENTIAL, "https": RESIDENTIAL}, True, 30),
("unlocker", unlocker(), False, 120),
("unlocker-mobile", unlocker("-tier-mobile"), False, 120),
]
def climb(url: str):
last = None
for name, proxies, verify, timeout in LADDER:
try:
r = requests.get(url, headers=HEADERS, proxies=proxies, verify=verify, timeout=timeout)
except requests.RequestException:
continue # no response at all counts as a block
last = r
if not name.startswith("unlocker"):
if not looks_blocked(r):
return name, r
continue
if "x-qp-unlocker-blocked" not in r.headers:
return name, r
if r.headers.get("x-qp-block-class") != "ip_reputation":
break # a different IP will not fix this wall
return "blocked", last
在生产中,一旦您知道每个域的阶梯,请记住它,这样您就不会在每次请求时为失败的阶梯付费。unlocker 还可能发送一个 x-qp-hint 头部,提供建议,值得在阻止类旁边记录。

如何决定,五个问题
- 您的服务器的普通请求是否返回真实页面?那么您不需要任何一个。停在那里。
- 从数据中心 IP 失败但从住宅 IP 工作吗?购买 住宅代理 并保留您自己的客户端。
- 从干净的住宅 IP 仍然失败,出现 403、'Just a moment' 或 'Enable JavaScript' 页面,或连接中断?这是 unlocker 的工作。
- unlocker 在住宅出口上报告
ip_reputation吗?在承诺流量之前在该网站上测试移动层。 - 它报告
captcha或fingerprint吗?没有代理层能可靠地解决这些问题。重新考虑来源、速率,或是否存在官方 API。
常见问题
我应该购买住宅代理还是使用 web unlocker?
首先测试您的目标。如果来自住宅 IP 的普通请求返回真实页面,如我们 2026 年 9 月 29 日测试中的 Zillow 和 Leboncoin,住宅代理就足够且运行成本更低。如果干净的住宅 IP 仍然得到 403 或 JavaScript 挑战,如 Indeed 和 Glassdoor,您需要 unlocker。
我需要住宅代理,还是任何代理都可以?
这取决于网站。在我们的测试中,Wikipedia、GitHub 和 Hacker News 回应了普通数据中心请求,因此不需要代理。Zillow 和 Leboncoin 拒绝了数据中心 IP 并接受了住宅 IP。数据中心代理共享第一个问题,因为托管范围很容易被网站识别和拒绝。
移动代理是否比住宅代理更可靠用于网络抓取?
运营商 IP 通过 CGNAT 被许多手机共享,因此网站更不愿意阻止它们,这有助于对抗 IP 信誉阻止。它们不会自行更改您的 TLS 指纹或解决 JavaScript 挑战,并且速度较慢,每 GB 的成本更高。我们在此测试中没有测量移动出口。
移动代理是否减少验证码?
它们可以减少由 IP 信誉触发的验证码,因为运营商地址看起来像许多普通手机用户。它们对由客户端指纹或请求速率触发的验证码无能为力。Web Unlocker 在任何层都不解决交互式验证码:它通过阻止类 captcha 报告它们。
为什么 web unlocker 比住宅代理慢?
因为当网站反击时,它每个请求做更多的工作:它在不同指纹下重试新 IP,并且如果出现 JavaScript 挑战,则在无头浏览器中加载页面。在我们的测试中,Indeed 在一次尝试中通过,耗时 2.6 秒,而 Glassdoor 需要一个浏览器并花费了 17.2 秒。
web unlocker 与住宅代理的计费方式有何不同?
两者都按 GB 计费。unlocker 计算它为您移动的每个字节,包括重试、阻止页面和浏览器的页面加载,并使用其自己的每层预付余额:住宅出口和移动运营商出口。当前每 GB 的价格显示在仪表板中。
住宅代理解决请求的来源问题。web unlocker 还解决请求的外观问题以及是否能运行 JavaScript。移动层再次更改 IP,以应对拒绝住宅范围的网站。它们都不会将人类验证码变成页面。购买您的目标接受的最低阶梯,并让阻止类告诉您何时爬升。
拒绝住宅范围的目标?查看 Web Unlocker 在移动出口。