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' // 或使用 SCRAPELESS_API_KEY 环境变量
});

可用服务

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

刮取浏览器模块提供了一个高级的、统一的浏览器自动化 API,构建在 Scrapeless 浏览器 API 之上。它支持 Puppeteer 和 Playwright,并使用高级方法(如 realClickrealFillliveURL)扩展标准页面对象,以实现更人性化的自动化。

import { Puppeteer, createPuppeteerCDPSession } from '@scrapeless-ai/sdk';
 
const browser = await Puppeteer.connect({
  sessionName: 'my-session',
  sessionTTL: 180,
  proxyCountry: '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({
  sessionName: 'api-session',
  sessionTTL: 120,
  proxyCountry: '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. Deep SerpApi

提取搜索引擎结果(例如,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 proxyURL = await client.proxies.proxy({
  sessionName: 'sessionName',
  sessionTTL: 180,
  proxyCountry: 'US',
  sessionRecording: true,
  defaultViewport: null
});
console.log('Proxy URL:', proxyURL);

7. 浏览器配置文件

配置文件允许您在多个会话中保留用户数据,例如存储、cookie、缓存和登录状态。这使得自动化更加流畅,简化了身份验证,并优化了性能。

// 创建新的配置文件
const createResponse = await client.profiles.create('My Profile');
console.log('Profile created:', createResponse);
 
// 列出配置文件
const profiles = await client.profiles.list({ page: 1, pageSize: 10 });
console.log('Profiles:', profiles.docs);
 
// 获取特定配置文件
const profile = await client.profiles.get(createResponse.profileId);
console.log('Profile details:', profile);
 
// 删除配置文件
const deleteResponse = await client.profiles.delete(createResponse.profileId);
console.log('Profile deleted:', deleteResponse);

错误处理

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, // 请求超时,单位毫秒
  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. 超时配置: 为长时间运行的操作设置适当的超时。

支持

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