SDKNode.js SDK

Node SDK

安装

要安装 Scrapeless Node SDK,可以使用 npm:

npm install @scrapeless-ai/sdk

快速入门

  1. 登录 Scrapeless 控制面板并获取 API 密钥 get-api-key.png
  2. 将 API 密钥设置为名为 SCRAPELESS_API_KEY 的环境变量,或将其作为参数传递给 Scrapeless 类。

这是一个基本的示例:

import { Scrapeless } from '@scrapeless-ai/sdk';
 
const client = new Scrapeless({
  apiKey: 'YOUR_API_KEY' // or use SCRAPELESS_API_KEY env variable
});

可用服务

1. 爬取浏览器 (浏览器自动化包装器)

爬取浏览器模块提供了一个基于 Scrapeless 浏览器 API 的高级统一的浏览器自动化 API。它支持 Puppeteer 和 Playwright,并使用 realClickrealFillliveURL 等高级方法扩展标准页面对象,以实现更人性化的自动化。

import { Puppeteer, createPuppeteerCDPSession } from '@scrapeless-ai/sdk';
 
const browser = await Puppeteer.connect({
  session_name: 'my-session',
  session_ttl: 180,
  proxy_country: 'US'
});
const page = await browser.newPage();
 
await page.goto('https://example.com');
const cdpSession = await createPuppeteerCDPSession(page);
 
await cdpSession.realClick('#login-btn');
await cdpSession.realFill('#username', 'myuser');
const urlInfo = await cdpSession.liveURL();
console.log('Current page URL:', urlInfo.liveURL);
 
await browser.close();

主要特性:

  • Puppeteer 和 Playwright 的统一 API
  • 人性化自动化:realClickrealFillliveURL
  • 易于与 Scrapeless 浏览器会话集成

2. 浏览器 API

直接管理浏览器会话以实现高级自动化场景。

// 创建浏览器会话
const session = await client.browser.create({
  session_name: 'api-session',
  session_ttl: 120,
  proxy_country: 'US'
});
console.log('Browser session info:', session);

3. 爬取 API

抓取网页并以各种格式提取内容。

const result = await client.scraping.scrape({
  actor: 'scraper.shopee',
  input: {
    url: 'https://shopee.tw/product/58418206/7180456348'
  }
});
 
console.log('result: ', result);

4. 深度 Serp API

提取搜索引擎结果(例如,Google)。

const searchResults = await client.deepserp.scrape({
  actor: 'scraper.google.search',
  input: {
    q: 'nike site:www.nike.com'
  }
});
console.log('Search results:', searchResults);

5. 通用 API

用于灵活数据提取的通用抓取工具。

const universalResult = await client.universal.scrape({
  url: 'https://example.com',
  options: {
    javascript: true,
    screenshot: true,
    extractMetadata: true
  }
});
console.log('Universal scraping result:', universalResult);

6. 代理 API

管理和配置用于抓取和自动化任务的代理。

// 获取代理 URL
const proxy_url = await client.proxies.proxy({
  session_name: 'session_name',
  session_ttl: 180,
  proxy_country: 'US',
  session_recording: true,
  defaultViewport: null
});
console.log('Proxy URL:', proxy_url);

错误处理

SDK 提供全面的错误处理:

try {
  const result = await client.scraping.scrape({
    actor: 'scraper.shopee',
    input: {
      url: 'https://shopee.tw/product/58418206/7180456348'
    }
  });
} catch (error) {
  if (error instanceof ScrapelessError) {
    console.error('Scrapeless error:', error.message);
    console.error('Status code:', error.statusCode);
  } else {
    console.error('Unexpected error:', error);
  }
}

配置

SDK 支持各种配置选项:

const client = new Scrapeless({
  apiKey: 'YOUR_API_KEY',
  timeout: 30000, // request timeout in milliseconds
  baseApiUrl: 'https://api.scrapeless.com',
  browserApiUrl: 'https://browser.scrapeless.com'
});

环境变量

  • SCRAPELESS_API_KEY - 您的 API 密钥
  • SCRAPELESS_BASE_API_URL - 基本 API URL
  • SCRAPELESS_BROWSER_API_URL - 浏览器 API URL

最佳实践

  1. API 密钥安全: 切勿硬编码您的 API 密钥。使用环境变量。
  2. 错误处理: 始终将 API 调用包装在 try-catch 块中。
  3. 资源清理: 完成后始终关闭浏览器连接。
  4. 速率限制: 注意 API 速率限制。
  5. 超时配置: 为长时间运行的操作设置适当的超时时间。

支持

如需支持、文档和更多示例,请访问: