文档浏览器与 CrawlAgent Browser浏览器扩展

浏览器扩展

通过自定义浏览器扩展,借助 Scrapeless 提升你的浏览体验和会话能力。

APIs

  • 上传扩展:POST /extensions/upload
  • 更新扩展:PUT /extensions/{extensionId}
  • 删除扩展:DELETE /extensions/{extensionId}
  • 获取扩展列表:GET /extensions/list
  • 获取扩展信息:GET /extensions/{extensionId}

请参阅 API 文档 查看详情。

设置浏览器扩展

使用 extensionIds 参数指定扩展 ID 以设置浏览器扩展。使用逗号分隔多个扩展 ID。

例如:extensionIds=extension_id1,extension_id2

示例扩展

以下示例代码演示如何通过 API 上传 MetaMask 扩展,并指定在启动浏览器时加载该扩展。

// npm install @scrapeless-ai/sdk puppeteer-core
import { Scrapeless } from '@scrapeless-ai/sdk';
import puppeteer from 'puppeteer-core';
 
const API_TOKEN = 'API Key'; // replace with your API Key
const EXTENSION_FILE_PATH = '/extensions/metamask-chrome-12.20.0.zip'; // replace with your extension zip file path
 
const client = new Scrapeless({ apiKey: API_TOKEN });
const { browser: scrapingBrowser } = client;
 
(async () => {
    try {
        const uploadResponse = await scrapingBrowser.extension.upload(EXTENSION_FILE_PATH, 'metamask'); // extension name
        const extensionId = uploadResponse?.extensionId;
    
        const { browserWSEndpoint } = scrapingBrowser.create({
            sessionName: 'use-extension',
            sessionTTL: 180,
            extensionIds: extensionId, // setup browser extension, separate by comma for multiple extensions
        });
        const browser = await puppeteer.connect({
            browserWSEndpoint,
            defaultViewport: null
        });
    
        const page = await browser.newPage();
        await page.goto('chrome://extensions/');
    
        await page.screenshot({
            path: 'extensions-screenshot.png',
            fullPage: true
        });
    
        await browser.close();
    } catch (error) {
        console.error('Error:', error.response?.data || error.message);
    }
})()

你可以访问 chrome://extensions 页面来检查扩展是否已成功加载。

结果如下所示:

示例