Nstbrowser SDK cho Node.js
Một SDK Node.js để tương tác với Nstbrowser API v2
Lưu ý: Tài liệu này dành cho API v2, phiên bản được khuyến nghị với đầy đủ chức năng từ v1 cộng thêm các tính năng bổ sung. Để xem tài liệu v1, vui lòng tham khảo README-v1.md. Người dùng mới được khuyến khích sử dụng v2 để có trải nghiệm ổn định và chuẩn hóa hơn.
Tổng quan
SDK này triển khai Nstbrowser API v2, cung cấp một bộ công cụ toàn diện để quản lý hồ sơ trình duyệt, điều khiển các phiên bản trình duyệt, quản lý dữ liệu trình duyệt cục bộ và sử dụng Chrome DevTools Protocol (CDP) để tự động hóa trình duyệt.
SDK cho phép bạn:
- Tạo và quản lý hồ sơ trình duyệt với cấu hình dấu vân tay chi tiết
- Khởi động và dừng các phiên bản trình duyệt riêng lẻ hoặc hàng loạt
- Cấu hình và quản lý proxy cho hồ sơ
- Quản lý thẻ hồ sơ để tổ chức tốt hơn
- Xóa bộ nhớ cache và cookie của trình duyệt
- Kết nối với trình duyệt bằng Chrome DevTools Protocol (CDP)
- Tự động hóa các hành động của trình duyệt thông qua tích hợp CDP với Puppeteer
Cài đặt
Sử dụng npm:
$ npm install nstbrowser-sdk-node
$ npm install nstbrowser-sdk-node
Sử dụng pnpm:
$ pnpm install nstbrowser-sdk-node
$ pnpm install nstbrowser-sdk-node
Sử dụng yarn:
$ yarn add nstbrowser-sdk-node
$ yarn add nstbrowser-sdk-node
Bắt đầu
Để sử dụng SDK, bạn cần một khóa API từ Nstbrowser:
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// Khởi tạo client với khóa API của bạn
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// Bây giờ bạn có thể sử dụng các dịch vụ khác nhau
const profileId = 'your_profile_id';
// Khởi động một phiên bản trình duyệt
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Trình duyệt đã khởi động:', startResponse);
// Dừng phiên bản trình duyệt
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Trình duyệt đã dừng:', stopResponse);
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// Khởi tạo client với khóa API của bạn
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// Bây giờ bạn có thể sử dụng các dịch vụ khác nhau
const profileId = 'your_profile_id';
// Khởi động một phiên bản trình duyệt
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Trình duyệt đã khởi động:', startResponse);
// Dừng phiên bản trình duyệt
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Trình duyệt đã dừng:', stopResponse);
Tích hợp CDP với Puppeteer
Một trong những tính năng mạnh mẽ nhất của SDK là tích hợp liền mạch với Puppeteer để tự động hóa trình duyệt:
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// Kết nối với trình duyệt bằng CDP
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// Kết nối Puppeteer với phiên bản trình duyệt
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// Sử dụng Puppeteer để tự động hóa
const page = await browser.newPage();
await page.goto('https://example.com');
// ... thực hiện các hành động khác
}
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// Kết nối với trình duyệt bằng CDP
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// Kết nối Puppeteer với phiên bản trình duyệt
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// Sử dụng Puppeteer để tự động hóa
const page = await browser.newPage();
await page.goto('https://example.com');
// ... thực hiện các hành động khác
}
Ví dụ
SDK đi kèm với một bộ ví dụ toàn diện trong thư mục /examples/v2
. Để chạy các ví dụ:
- Điều hướng đến thư mục ví dụ và cài đặt các phụ thuộc:
cd examples/v2
npm install
cd examples/v2
npm install
- Tạo một tệp
.env
trong thư mụcexamples/v2
và thêm khóa API của bạn:
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
- Chạy bất kỳ ví dụ nào:
node browsers/startBrowser.js
node browsers/startBrowser.js
Các ví dụ có sẵn được sắp xếp theo dịch vụ:
Ví dụ về Trình duyệt
browsers/getBrowserDebugger.js
: Lấy thông tin trình gỡ lỗi trình duyệt để tự động hóabrowsers/getBrowserPages.js
: Lấy thông tin về các trang trình duyệtbrowsers/getBrowsers.js
: Lấy danh sách các trình duyệt đang hoạt động với thông tin trạng tháibrowsers/startBrowser.js
: Khởi động trình duyệt cho một hồ sơ cụ thểbrowsers/startBrowsers.js
: Khởi động nhiều trình duyệt hàng loạtbrowsers/startOnceBrowser.js
: Khởi động trình duyệt một lần với cấu hình tùy chỉnhbrowsers/stopBrowser.js
: Dừng một phiên bản trình duyệt cụ thểbrowsers/stopBrowsers.js
: Dừng nhiều phiên bản trình duyệt hàng loạt
Ví dụ về Hồ sơ
profiles/batchClearProfileTags.js
: Xóa thẻ cho nhiều hồ sơ hàng loạtprofiles/batchCreateProfileTags.js
: Tạo thẻ cho nhiều hồ sơ hàng loạtprofiles/batchResetProfileProxy.js
: Đặt lại proxy cho nhiều hồ sơ hàng loạtprofiles/batchUpdateProfileTags.js
: Cập nhật thẻ cho nhiều hồ sơ hàng loạtprofiles/batchUpdateProxy.js
: Cập nhật proxy cho nhiều hồ sơ hàng loạtprofiles/clearProfileTags.js
: Xóa tất cả thẻ từ một hồ sơ cụ thểprofiles/createProfile.js
: Tạo một hồ sơ mới với cấu hình chi tiếtprofiles/createProfileTags.js
: Tạo thẻ mới cho một hồ sơ cụ thểprofiles/deleteProfile.js
: Xóa một hồ sơ cụ thểprofiles/deleteProfiles.js
: Xóa nhiều hồ sơ hàng loạtprofiles/getProfileTags.js
: Lấy tất cả thẻ được liên kết với hồ sơprofiles/getProfiles.js
: Lấy hồ sơ với các tùy chọn lọcprofiles/resetProfileProxy.js
: Đặt lại cấu hình proxy cho một hồ sơ cụ thểprofiles/updateProfileProxy.js
: Cập nhật cấu hình proxy cho một hồ sơ cụ thểprofiles/updateProfileTags.js
: Cập nhật thẻ cho một hồ sơ cụ thểprofiles/getAllProfileGroups.js
: Lấy tất cả nhóm hồ sơprofiles/changeProfileGroup.js
: Thay đổi nhóm hồ sơprofiles/batchChangeProfileGroup.js
: Thay đổi hàng loạt nhóm hồ sơ
Ví dụ về Dữ liệu cục bộ
locals/clearProfileCache.js
: Xóa bộ nhớ cache trình duyệt cho một hồ sơ cụ thểlocals/clearProfileCookies.js
: Xóa cookie trình duyệt cho một hồ sơ cụ thể
Ví dụ về Điểm cuối CDP
cdpEndpoints/connectBrowser.js
: Kết nối với trình duyệt bằng CDP và tự động hóa với PuppeteercdpEndpoints/connectOnceBrowser.js
: Kết nối với trình duyệt một lần với CDP và tự động hóa với Puppeteer
Hỗ trợ
Để được hỗ trợ, bạn có thể liên hệ với chúng tôi qua Discord. Để biết thêm tài liệu chi tiết, hãy truy cập tài liệu Nstbrowser chính thức: Tài liệu Nstbrowser API.