什么是代理浏览器?架构、用例和限制
Expert Network Defense Engineer
TL;DR:
- 代理浏览器将浏览器会话与受控代理路由结合在一起。 代理更改网络身份,而浏览器保留JavaScript执行、Cookies、存储和交互状态。
- IP身份和浏览器身份是不同的层次。 轮换IP不会重置Cookies、本地存储、时区、语言、Canvas输出或其他浏览器信号。
- 浏览器代理是一种设置;代理浏览器是整个环境。 扩展代理便于手动浏览,而管理的浏览器会话则旨在实现可重复的自动化。
- 代理类型应遵循任务。 数据中心IP倾向于吞吐量,住宅IP倾向于消费网络上下文,而粘性会话则有利于多步骤导航。
- Scrapeless Agent Browser暴露一个CDP WebSocket端点。 Puppeteer和Playwright可以连接到远程会话,其代理国家、会话生命周期和浏览器环境一并配置。
什么是代理浏览器?
代理浏览器是一种浏览器环境,通过中介代理服务器发送网页请求,同时保留渲染和与页面交互所需的浏览器特性。
该定义有两个部分。代理提供网络路径和外部IP地址。浏览器提供JavaScript执行、DOM状态、Cookies、存储、导航和类似用户的交互。因此,带有代理的普通HTTP客户端与代理浏览器并不相同,尽管两者都可以通过其他IP路由流量。
基础代理行为遵循HTTP语义规范中描述的相同模型:客户端可以将HTTP请求直接发送到中介,并且HTTPS流量可以使用CONNECT方法建立到目标的隧道。
代理浏览器请求的流动方式
代理浏览器请求在两个必须保持一致的系统中进行:浏览器会话和代理路由。
- 自动化客户端创建或连接到浏览器会话。
- 会话接收代理配置,例如国家和会话策略。
- 浏览器通过代理端点发送页面和资源请求。
- 目标接收代理的外部IP地址。
- 浏览器执行JavaScript、更新DOM、存储Cookies,并保持导航状态。
- 自动化客户端通过控制协议读取或更改渲染的页面。
代理不渲染页面。浏览器不创建代理网络。一个可靠的代理浏览器在任务的整个生命周期内保持两个层次的一致性。
IP身份和浏览器身份是不同的
IP身份描述目标可以观察到的网络来源。浏览器身份描述浏览环境暴露的状态和信号。
| 层次 | 典型信号 | 变化原因 |
|---|---|---|
| 网络身份 | IP地址、网络所有者、大致位置 | 代理端点和出口选择 |
| HTTP身份 | 头信息、接受的语言、Cookies | 浏览器配置文件和请求配置 |
| 运行时身份 | 时区、屏幕大小、字体、WebGL、Canvas | 浏览器引擎和配置文件设置 |
| 会话身份 | Cookies、本地存储、缓存、登录状态 | 浏览器上下文和持久性策略 |
| 行为 | 导航顺序、时机、点击、表单输入 | 自动化逻辑或代理操作 |
仅更改IP不会影响其他层次。在无关的IP之间重用一个浏览器配置文件可能会导致身份不一致。在每个页面替换浏览器上下文也可能破坏依赖于购物车、同意选择或身份验证状态的多步骤工作流。
WHATWG Web Storage标准定义了独立于当前网络路由持久的浏览器管理存储。Cookie行为同样受浏览器状态的支配,而不是代理本身。
代理浏览器与浏览器代理与扩展代理
这三个术语描述了不同的范围。
| 术语 | 含义 | 最佳适用 | 主要限制 |
|---|---|---|---|
| 浏览器代理 | 应用于现有浏览器的代理设置 | 手动测试和简单路由 | 本身不提供会话编排 |
| 代理浏览器 | 一个围绕代理路由和会话控制构建的浏览器环境 | 抓取、本地化、监控、代理 | 需要浏览器生命周期管理 |
| 扩展代理 | 更改代理设置的浏览器附加组件 | 快速手动检查 | 通常与桌面配置文件相关,且对无人值守的工作负载较弱 |
浏览器代理通常是一种配置选择。代理浏览器是围绕该选择的操作环境。扩展代理是应用配置的一种用户界面机制。
自动化中的区别很重要。扩展可以改变选项卡发送请求的位置,但它不会自动创建隔离的个人资料、暴露远程控制、跨机器保留任务状态或协调带有时区和语言的IP。
代理浏览器使用的代理类型
代理类型决定了会话的网络特性,而不是浏览器的渲染能力。
数据中心代理
数据中心代理使用托管在服务器基础设施上的地址。它们适合于高吞吐量访问接受云网络流量的目标、从固定位置进行可重复测试,以及带宽和可预测路由重要的工作负载。
居民代理
居民代理通过消费者网络地址路由。当工作流程需要类似普通家庭流量的国家或地区上下文时,它们非常有用。提供者的采购、同意模型、位置准确性和会话控制与池大小同样重要。
ISP 代理
ISP 代理结合了通过互联网服务提供商注册的地址和服务器托管的稳定性。它们通常被选择用于需要一致外部身份的较长期会话。
旋转和粘性会话
旋转和粘性是政策而不是来源类型。旋转政策在请求或会话之间更改出口地址。粘性政策在定义的任务窗口内保持相同的地址。搜索结果收集可能容忍旋转,而购物车或多页面工作流程通常需要连续性。
使用 Scrapeless 开始抓取
使用 Scrapeless 提升您的网络抓取和自动化工作流程!
今天注册并获得 5 美元的免费信用 — 无需信用卡。立即在 Scrapeless Dashboard 领取您的免费信用。
代理浏览器的适用场景
当任务需要一个可控的浏览器和一个受控的网络源时,代理浏览器是有用的。
- Web 数据收集。 渲染客户端页面、保留过滤器、跟随分页并在适当的位置路由会话以提取公共字段。
- 本地化测试。 检查受控地区的语言、货币、目录、税务或落地页差异。
- 广告验证。 确认公共活动创意和目的地在预期市场中按预期显示。
- 市场研究。 观察各地区的公共定价、品种、可用性和信息传递。
- AI 代理。 为代理提供一个有状态的浏览器,可以在多个页面上导航、阅读、点击并继续任务。
同一个工具也可能被滥用,因此范围很重要。收集公共数据,最小化存储字段,遵守适用条款和法律,避免受限或私人表面。
代理浏览器如何实现模式
Scrapeless Agent Browser 通过标准的 CDP WebSocket 端点提供远程浏览器会话。代理国家和会话生命周期在连接 URL 上配置,因此网络路径和浏览器生命周期同时开始。
控制层与 Puppeteer 和 Playwright 兼容。CDP 本身是一组用于检查和控制基于 Chromium 的浏览器的域;Chrome DevTools Protocol 参考文档 记录了远程客户端使用的协议表面。
前提条件:连接需要
SCRAPELESS_API_KEY中的 Scrapeless API 密钥。
javascript
import puppeteer from "puppeteer-core";
const token = process.env.SCRAPELESS_API_KEY;
if (!token) throw new Error("SCRAPELESS_API_KEY is required");
const endpoint = new URL("wss://browser.scrapeless.com/api/v2/browser");
endpoint.searchParams.set("token", token);
endpoint.searchParams.set("sessionTTL", "180");
endpoint.searchParams.set("proxyCountry", "US");
const browser = await puppeteer.connect({
browserWSEndpoint: endpoint.toString(),
});
const page = await browser.newPage();
await page.goto("https://example.com", { waitUntil: "domcontentloaded" });
console.log(await page.title());
await browser.close();
此示例故意将任务保持在小范围内:创建一个受管理的会话,固定美国出口,加载公共页面,读取其标题,并关闭浏览器。生产工作流程还应定义会话边界、允许的目标、数据保留和并发限制。
代理浏览器无法消除的限制
代理浏览器并不会将每个页面变成授权或稳定的数据源。
- 访问规则仍然适用。 身份验证、权限、爬虫指令、网站条款和适用法律仍然相关。
- 新的 IP 不是新的身份。 Cookie、存储、区域设置和运行时信号必须保持一致。
- 动态页面仍然需要提取逻辑。 渲染会产生 DOM;它并不决定哪些字段是正确的。
- 位置不是完美确定的。 内容也可能依赖于账户状态、语言、设备、库存和实验分配。
- 长任务需要可观测性。 控制台日志、网络跟踪、屏幕截图和会话回放通常比最终错误字符串更有价值。
W3C WebDriver标准 清楚地表明了相同的架构分离:自动化客户端通过定义的远程接口控制浏览器,而浏览器负责导航和文档行为。
如何选择代理浏览器
通过将环境与工作流程匹配来选择代理浏览器。
| 问题 | 更喜欢简单的浏览器代理 | 更喜欢托管的代理浏览器 |
|---|---|---|
| 任务是手动的且偶尔的? | 是 | 不需要 |
| 页面需要JavaScript和交互吗? | 有时 | 是 |
| 工作流程涉及多个页面吗? | 有限 | 是 |
| 会话是通过代码还是代理创建的? | 否 | 是 |
| 地理路由是每次运行的一部分吗? | 手动设置 | 中央配置 |
| 需要日志和重放吗? | 仅浏览器开发工具 | 托管的可观察性 |
| 是否必须并行运行许多独立会话? | 不太合适 | 设计成这样 |
还要检查代理产品本身:源类型、共享模式、位置控制、粘性会话行为、支持的协议、身份验证、使用报告和来源政策。 Scrapeless代理概述 解释了数据中心、住宅、ISP和IPv6选项的适用性。
结论
代理浏览器连接两个独立的控制:流量的出口和浏览器的行为。干净的架构保持网络身份、浏览器身份和会话状态为一个授权任务对齐。
有关代理基础设施的更广泛解释,请阅读 云代理是什么,在 Scrapeless定价页面 上比较当前选项,并使用 Agent Browser文档 作为连接参数的真实来源。
准备构建位置感知的浏览器工作流程了吗?
加入Scrapeless社区,与构建浏览器自动化的团队比较会话设计: Discord · Telegram。
在 app.scrapeless.com 注册并将Agent Browser连接到您的工作流程所需的代理国家和会话政策。
常见问题
问:代理浏览器与VPN是一样的吗?
不是。代理浏览器将代理路由应用于浏览器环境,而VPN通常创建一个设备或网络级别的隧道,覆盖更广泛的流量。
问:代理浏览器隐藏每个识别信号吗?
不。代理更改网络地址,但cookie、存储、区域设置、屏幕设置、运行时行为和帐户状态仍然可以识别或关联会话。
问:代理浏览器可以无头运行吗?
可以。托管的代理浏览器可以在没有可见桌面界面的情况下运行,同时可以通过Puppeteer、Playwright、CDP或其他支持的自动化客户端进行控制。
问:代理浏览器应该使用哪种代理类型?
对于兼容的高吞吐目标使用数据中心代理;对于消费者网络上下文重要时使用住宅代理;对于稳定的长期身份重要时使用ISP代理。根据真实目标验证选择。
问:使用代理浏览器合法吗?
该技术在许多司法管辖区是合法的,但任务、数据、合同和访问方式决定了特定用途是否被允许。收集公共数据,审查网站条款,并为相关司法管辖区寻求法律建议。
问:Agent Browser可以在没有AI代理的情况下工作吗?
可以。Agent Browser暴露了一个CDP WebSocket端点,普通的Puppeteer或Playwright代码可以在没有AI推理层的情况下进行控制。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



