Nstbrowser Node.js SDK
用于与Nstbrowser API v2交互的Node.js SDK
注意: 本文档适用于API v2,这是推荐版本,包含v1的所有功能以及附加功能。有关v1文档,请参阅README-v1.md。鼓励新用户使用v2以获得更稳定和标准化的体验。
概述
此SDK实现了Nstbrowser API v2,提供了一套全面的工具,用于管理浏览器配置文件、控制浏览器实例、管理本地浏览器数据以及利用Chrome DevTools Protocol (CDP)进行浏览器自动化。
此SDK使您可以:
- 创建和管理具有详细指纹配置的浏览器配置文件
- 单独或批量启动和停止浏览器实例
- 为配置文件配置和管理代理
- 管理配置文件标签以更好地组织
- 清除浏览器缓存和Cookie
- 使用Chrome DevTools Protocol (CDP)连接到浏览器
- 通过与Puppeteer集成的CDP实现浏览器自动化
安装
使用npm:
bash
$ npm install nstbrowser-sdk-node
$ npm install nstbrowser-sdk-node
使用pnpm:
bash
$ pnpm install nstbrowser-sdk-node
$ pnpm install nstbrowser-sdk-node
使用yarn:
bash
$ yarn add nstbrowser-sdk-node
$ yarn add nstbrowser-sdk-node
开始使用
要使用此SDK,您需要一个来自Nstbrowser的API密钥:
javascript
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// 使用您的API密钥初始化客户端
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// 现在您可以使用各种服务
const profileId = 'your_profile_id';
// 启动浏览器实例
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Browser started:', startResponse);
// 停止浏览器实例
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Browser stopped:', stopResponse);
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// 使用您的API密钥初始化客户端
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// 现在您可以使用各种服务
const profileId = 'your_profile_id';
// 启动浏览器实例
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Browser started:', startResponse);
// 停止浏览器实例
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Browser stopped:', stopResponse);
与Puppeteer的CDP集成
此SDK最强大的功能之一是其与Puppeteer的无缝集成,用于浏览器自动化:
javascript
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// 使用CDP连接到浏览器
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// 将Puppeteer连接到浏览器实例
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// 使用Puppeteer进行自动化
const page = await browser.newPage();
await page.goto('https://example.com');
// ... 执行其他操作
}
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// 使用CDP连接到浏览器
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// 将Puppeteer连接到浏览器实例
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// 使用Puppeteer进行自动化
const page = await browser.newPage();
await page.goto('https://example.com');
// ... 执行其他操作
}
示例
此SDK在/examples/v2
目录中提供了一套全面的示例。要运行示例:
- 导航到示例目录并安装依赖项:
bash
cd examples/v2
npm install
cd examples/v2
npm install
- 在
examples/v2
目录中创建一个.env
文件并添加您的API密钥:
bash
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
- 运行任何示例:
bash
node browsers/startBrowser.js
node browsers/startBrowser.js
可用的示例按服务组织:
浏览器示例
browsers/getBrowserDebugger.js
: 获取浏览器调试器信息以进行自动化browsers/getBrowserPages.js
: 获取有关浏览器页面的信息browsers/getBrowsers.js
: 获取具有状态信息的活动浏览器列表browsers/startBrowser.js
: 为特定配置文件启动浏览器browsers/startBrowsers.js
: 批量启动多个浏览器browsers/startOnceBrowser.js
: 使用自定义配置启动一次性浏览器browsers/stopBrowser.js
: 停止特定浏览器实例browsers/stopBrowsers.js
: 批量停止多个浏览器实例
配置文件示例
profiles/batchClearProfileTags.js
: 批量清除多个配置文件的标签profiles/batchCreateProfileTags.js
: 批量为多个配置文件创建标签profiles/batchResetProfileProxy.js
: 批量重置多个配置文件的代理profiles/batchUpdateProfileTags.js
: 批量更新多个配置文件的标签profiles/batchUpdateProxy.js
: 批量更新多个配置文件的代理profiles/clearProfileTags.js
: 清除特定配置文件的所有标签profiles/createProfile.js
: 使用详细配置创建新配置文件profiles/createProfileTags.js
: 为特定配置文件创建新标签profiles/deleteProfile.js
: 删除特定配置文件profiles/deleteProfiles.js
: 批量删除多个配置文件profiles/getProfileTags.js
: 获取与配置文件关联的所有标签profiles/getProfiles.js
: 使用过滤选项获取配置文件profiles/resetProfileProxy.js
: 重置特定配置文件的代理配置profiles/updateProfileProxy.js
: 更新特定配置文件的代理配置profiles/updateProfileTags.js
: 更新特定配置文件的标签profiles/getAllProfileGroups.js
: 获取所有配置文件组profiles/changeProfileGroup.js
: 更改配置文件组profiles/batchChangeProfileGroup.js
: 批量更改配置文件组
本地数据示例
locals/clearProfileCache.js
: 清除特定配置文件的浏览器缓存locals/clearProfileCookies.js
: 清除特定配置文件的浏览器Cookie
CDP 端点示例
cdpEndpoints/connectBrowser.js
: 使用CDP连接到浏览器并使用Puppeteer进行自动化cdpEndpoints/connectOnceBrowser.js
: 使用CDP连接到一次性浏览器并使用Puppeteer进行自动化
支持
如需支持,请随时通过Discord联系我们。如需更详细的文档,请访问Nstbrowser官方文档:Nstbrowser API 文档。