跳转到主要内容
要开始使用,请获取您的凭证 —— 您将在网页自动化工具中使用的 Username 和 Password。您可以在刚创建的 Browser API 区域的 “Overview” 选项卡中找到它们。我们假设您已经安装了您偏爱的网页自动化工具。如果没有,请先进行安装。

Browser API 快速开始示例

运行这些基本示例以检查您的 Browser API 是否正常工作(请记得替换为您的凭证和目标 URL):
如需更高级的示例,例如处理captchas**,**请查看代码示例部分。
  • NodeJS
  • Python
  • C#
#!/usr/bin/env node
const puppeteer = require('puppeteer-core');
const {
    // Replace with your Browser API zone credentials
    AUTH = 'USER:PASS',
    TARGET_URL = 'https://example.com',
} = process.env;

async function scrape(url = TARGET_URL) {
    if (AUTH == 'USER:PASS') {
        throw new Error(`Provide Browser API credentials in AUTH`
            + ` environment variable or update the script.`);
    }
    console.log(`Connecting to Browser...`);
    const browserWSEndpoint = `wss://${AUTH}@brd.superproxy.io:9222`;
    const browser = await puppeteer.connect({ browserWSEndpoint });
    try {
        console.log(`Connected! Navigating to ${url}...`);
        const page = await browser.newPage();
        const client = await page.createCDPSession();
        const { frameTree: { frame } } = await client.send('Page.getFrameTree');
        const { url: inspectUrl } = await client.send('Page.inspect', {
            frameId: frame.id,
        });
        console.log(`You can inspect this session at: ${inspectUrl}.`);
        await page.goto(url, { timeout: 2 * 60 * 1000 });
        console.log(`Navigated! Scraping page content...`);
        const data = await page.content();
        console.log(`Scraped! Data: ${data}`);
    } finally {
        await browser.close();
    }
}

function getErrorDetails(error) {
    if (error.target?._req?.res) {
        const {
            statusCode,
            statusMessage,
        } = error.target._req.res;
        return `Unexpected Server Status ${statusCode}: ${statusMessage}`;
    }
}

if (require.main == module) {
    scrape().catch(error => {
        console.error(getErrorDetails(error)
            || error.stack
            || error.message
            || error);
        process.exit(1);
    });
}

每个会话仅支持一次初始导航

Browser API 会话的结构允许每个会话进行一次初始导航。初始导航是指首次加载需采集数据的目标站点。之后,用户可以在同一会话中通过点击、滚动等交互方式自由导航网站。但如果您想开始一个新的采集任务——无论是相同网站还是不同网站——并重新从初始导航步骤开始,就必须启动一个新的会话。

会话时间限制

Browser API 提供两种超时机制,用于保护用户避免失控或异常使用:
  1. 空闲会话超时:如果浏览器会话空闲超过 5 分钟(没有任何活动流经它),Browser API 将自动结束该会话。
  2. 最大会话时长超时:Browser API 会话最长可持续 30 分钟。一旦达到最大时长,会话将自动结束。