Node SDK
安装
要安装 Scrapeless Node SDK,可以使用 npm:
npm install @scrapeless-ai/sdk
快速入门
- 登录 Scrapeless 控制面板并获取 API 密钥
- 将 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,并使用 realClick
、realFill
和 liveURL
等高级方法扩展标准页面对象,以实现更人性化的自动化。
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
- 人性化自动化:
realClick
、realFill
、liveURL
- 易于与 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 URLSCRAPELESS_BROWSER_API_URL
- 浏览器 API URL
最佳实践
- API 密钥安全: 切勿硬编码您的 API 密钥。使用环境变量。
- 错误处理: 始终将 API 调用包装在 try-catch 块中。
- 资源清理: 完成后始终关闭浏览器连接。
- 速率限制: 注意 API 速率限制。
- 超时配置: 为长时间运行的操作设置适当的超时时间。
支持
如需支持、文档和更多示例,请访问: