fetch,零运行时依赖。
请将 API 密钥保留在服务端代码中。该 SDK 不适用于浏览器打包环境。
安装
adscrawl-js on GitHub
查看源代码、可运行示例和版本发布。
认证并发起第一次请求
在控制台中创建 API 密钥,并在服务器环境中设置ADSCRAWL_API_KEY。你也可以通过 new AdsCrawl({ apiKey: '...' }) 显式传入密钥。
渲染内容和截图
html() 在 contentMode 为 'html'(默认值)或 'markdown' 时返回字符串,在 'json' 时返回 Article。markdown() 和 article() 是这些模式的便捷方法。screenshot() 返回包含 PNG 的 Uint8Array。
代理和指纹
通过自定义代理路由,或使用托管的countryCode 路由。两者不能同时使用。
browserscan.png:
结构化提取
列出可用的模板及其参数:missingFields。
actions 进行点击、输入、滚动和等待,使用 waitFor 等待可见的 CSS 选择器或文本出现。有关模板特定的要求,请参阅 API 参考。
远程 CDP 浏览器
通过 CDP 将 Playwright 浏览器连接到 AdsCrawl 远程会话:sessionId、expiresAt 和 cdpBaseUrl,不包含 WebSocket URL。对于 Puppeteer,请使用发现模式:
cdp.list() 返回 { ok, data }。cdp.liveToken(sessionId) 返回一个有效期为 30 秒的单次使用实时控制 URL。将所有连接 URL 视为机密,不要记录它们。
持久化云浏览器
云浏览器配置在停止后保留其配置。使用 API 密钥启动时,每次启动都需要显式提供顶层自定义代理,即使配置文件中已保存了代理。 将ADSCRAWL_PROXY_SERVER 设置为你的 HTTP 或 SOCKS5 代理 URL,并带上明确的端口。如果需要认证,还需设置 ADSCRAWL_PROXY_USERNAME 和 ADSCRAWL_PROXY_PASSWORD。
cloudBrowsers.launch({ proxy, tabs?, cookies?, fingerprint? }) 在单个请求中创建持久化配置文件并启动它。失败的启动可能在 AdsCrawlAPIError.id 中返回一个配置文件 ID,请检查并停止该配置文件。如果未收到 ID,请在重复启动前检查 cloudBrowsers.list()。
cloudBrowsers.list({ page?, pageSize? }) 包含分页和已保存/运行配额信息。停止响应中的 runtime.status: 'stopping' 表示关闭正在进行中,配额仍被保留。关闭查看器不会停止计费。SDK 涵盖 API 密钥端点,配置文件的 PATCH/DELETE 和查看器认证需要仪表盘会话。
配置、超时和取消
ADSCRAWL_API_KEY。API 源地址默认依次使用 ADSCRAWL_BASE_URL、ADSCRAWL_API_URL,然后是 https://api.adscrawl.net。HTTP 超时覆盖请求及其响应读取。普通调用默认 90 秒,cloudBrowsers.launch() 默认 195 秒以允许启动和服务器清理。对于长时间任务,请将 HTTP 超时设置为大于服务端任务超时。
错误处理
status、稳定的 code、已脱敏的 body、traceId,以及可用的 requestId。网络失败使用 AdsCrawlConnectionError;无效或空响应用 AdsCrawlResponseError。调用方取消保留 AbortSignal 的原因。请求不会自动重试。