Skip to content

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:

bash
$ npm install nstbrowser-sdk-node
$ npm install nstbrowser-sdk-node

Sử dụng pnpm:

bash
$ pnpm install nstbrowser-sdk-node
$ pnpm install nstbrowser-sdk-node

Sử dụng yarn:

bash
$ 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:

javascript
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:

javascript
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ụ:

  1. Điều hướng đến thư mục ví dụ và cài đặt các phụ thuộc:
bash
cd examples/v2
npm install
cd examples/v2
npm install
  1. Tạo một tệp .env trong thư mục examples/v2 và thêm khóa API của bạn:
bash
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
  1. Chạy bất kỳ ví dụ nào:
bash
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óa
  • browsers/getBrowserPages.js: Lấy thông tin về các trang trình duyệt
  • browsers/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ái
  • browsers/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ạt
  • browsers/startOnceBrowser.js: Khởi động trình duyệt một lần với cấu hình tùy chỉnh
  • browsers/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ạt
  • profiles/batchCreateProfileTags.js: Tạo thẻ cho nhiều hồ sơ hàng loạt
  • profiles/batchResetProfileProxy.js: Đặt lại proxy cho nhiều hồ sơ hàng loạt
  • profiles/batchUpdateProfileTags.js: Cập nhật thẻ cho nhiều hồ sơ hàng loạt
  • profiles/batchUpdateProxy.js: Cập nhật proxy cho nhiều hồ sơ hàng loạt
  • profiles/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ết
  • profiles/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ạt
  • profiles/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ọc
  • profiles/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 Puppeteer
  • cdpEndpoints/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.