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' // 或使用 SCRAPELESS_API_KEY 环境变量
});
可用服务
1. 刮取浏览器 (浏览器自动化包装器)
刮取浏览器模块提供了一个高级的、统一的浏览器自动化 API,构建在 Scrapeless 浏览器 API 之上。它支持 Puppeteer 和 Playwright,并使用高级方法(如 realClick
、realFill
和 liveURL
)扩展标准页面对象,以实现更人性化的自动化。
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
- 人性化自动化:
realClick
、realFill
、liveURL
- 易于与 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 URLSCRAPELESS_BROWSER_API_URL
- 浏览器 API URL
最佳实践
- API 密钥安全: 切勿硬编码您的 API 密钥。使用环境变量。
- 错误处理: 始终将 API 调用包装在 try-catch 块中。
- 资源清理: 完成后始终关闭浏览器连接。
- 速率限制: 注意 API 速率限制。
- 超时配置: 为长时间运行的操作设置适当的超时。
支持
如需支持、文档和更多示例,请访问: