发布时间: 2026年10月20日更新时间: 2026年10月20日

Apify Proxy 配置:Proxy URL、Actor 输入与出口验证

了解 Apify Proxy 配置方法,按 Actor 输入字段设置 Proxy URL、Console 或 SDK 代理,并用 browser-info 验证请求出口。

配置 Apify Proxy 时,先确定使用 Apify Proxy 还是自定义代理 URL,并确认目标 Actor 实际读取哪个代理输入字段。Apify Proxy 的连接设置和密码可在 Apify Console 的 Proxy 页面查看;SDK 通用做法见 Apify Proxy 文档和 Apify SDK 代理管理指南。

先查目标 Actor 的输入字段是否支持代理

在 Apify 控制台打开目标 Actor 的输入说明,查找代理相关配置项及其默认行为。若使用自定义 Actor,确认其代码实际读取的输入字段;不能因为平台有 Proxy URL 概念,就假设每个 Actor 都使用相同字段。

根据运行方式在 Console、JavaScript 或 Python 中配置

在 Console 运行 Actor: 打开 Actor 的 Input 页,使用该 Actor schema 实际定义的字段。采用 Apify SDK 常见约定时,字段可能是 proxyConfiguration 对象,例如 {"useApifyProxy": true};自定义代理 URL 通常在 proxyUrls 数组中配置。字段是否存在及具体名称必须先在目标 Actor 的 Input schema 确认,不能把示例直接套给任意 Actor。

自定义代理 URL 可写成 http://USERNAME:PASSWORD@proxy.example.com:8000:http 是协议,后续依次为用户名、密码、主机和端口。这里全部是占位值;真实凭证从安全环境变量读取,不要写入源码或日志。用户名或密码含 @、: 等保留字符时,按 URL 规则编码。Apify Proxy 凭证从 Apify 账户/Proxy 页面获取;自定义代理凭证由对应代理服务提供,两者不能互换。Actor 字段仍以其输入定义为准。

JavaScript SDK 最小示例: 以下按 Apify SDK 3.x 与 Crawlee 3.x 风格 API 编写,运行前核对依赖版本及 Actor 权限。browser-info 响应体按 JSON 解析:

```js
import { Actor } from 'apify';
import { CheerioCrawler } from 'crawlee';

await Actor.init();
const proxyConfiguration = await Actor.createProxyConfiguration({
useApifyProxy: true,
});
const crawler = new CheerioCrawler({
proxyConfiguration,
maxRequestsPerCrawl: 1,
async requestHandler({ response, log }) {
const result = JSON.parse(response.body.toString());
log.info('browser-info 响应已读取', { clientIp: result.ip });
},
});
await crawler.run(['https://api.apify.com/v2/browser-info/']);
await Actor.exit();
```

自定义代理时可按当前 SDK 文档将 proxyUrls: [process.env.PROXY_URL] 传给 Actor.createProxyConfiguration()。Python SDK 的 Actor、ProxyConfiguration 方法名和参数需按已安装 apify SDK 版本官方文档核对,再将配置连接到支持代理设置的 crawler。Actor input 可用 {"proxyConfiguration":{"useApifyProxy":true}} 表示常见字段结构,但仅当目标 Actor schema 定义此字段时才有效。不要把账号密码、token、Cookie 或含凭证 URL 写入公开代码、截图或日志;只使用环境变量或控制台安全配置。

Proxy URL 格式、认证字段名和凭证来源,以账户页面及当前 Apify 文档为准。

用 browser-info 检查请求实际使用的出口

先用少量合规请求测试。让请求通过代理访问 Apify 的 browser-info 接口,预期返回 JSON,其中 IP 地址应与所选代理出口相符;若显示本机出口或请求失败,先检查 Actor 是否读取代理字段、配置是否传入 crawler 以及认证是否通过。该结果仅验证这次请求观察到的出口,不证明其它 Actor 请求都采用相同设置。结合 Actor 日志判断,日志中隐藏 token、密码和认证头。

现象优先核查处理方向
Actor 不接受代理配置Actor 输入 schema、版本和字段名称以该 Actor 的当前说明为准
认证失败凭证来源、格式、权限和脱敏日志在控制台重新核对,不公开凭证
连接超时目标地址、网络错误、代理可用范围分开检查 Actor 与代理连接
目标站返回 403/429目标站规则、访问频率和请求行为遵守目标站限制,停止不必要重试

若问题发生在代理主机、端口或认证接入环节,可继续参考代理设置帮助;该帮助页不替代 Actor 自身的输入字段说明。

FAQ

所有 Actor 都支持相同的 Proxy URL 字段吗?

不能默认如此。Actor 的代理输入字段由其自身定义,应检查输入说明或实现。

browser-info 显示的 IP 不是预期出口怎么办?

检查 Actor 输入字段、凭证来源与实际 crawler 配置;修正后复测。该结果只代表这次 browser-info 请求观察到的出口。