Cách sử dụng AdsPower với Puppeteer: Hướng dẫn thiết lập đầy đủ
Take a Quick Look
Tìm hiểu cách kết nối trình duyệt chống phát hiện AdsPower với Puppeteer để tự động hóa đa tài khoản, thu thập dữ liệu và kiểm thử an toàn hơn. Hướng dẫn từng bước và ví dụ mã.
🔥 Limited-Time Offer! Save extra 10% off on your first monthly plan with code: Anitdetect10
Sign upCách sử dụng AdsPower với Puppeteer
AdsPower và Puppeteer giải quyết hai nửa khác nhau của cùng một vấn đề tự động hóa. AdsPower cung cấp cho bạn các hồ sơ trình duyệt biệt lập với dấu vân tay kỹ thuật số độc đáo, trong khi Puppeteer cung cấp cho bạn một cách lập trình để điều khiển các hồ sơ đó. Kết hợp lại, chúng cho phép bạn tự động hóa các quy trình đa tài khoản, công việc thu thập dữ liệu và quy trình kiểm thử mà không bị coi là bot.
Hướng dẫn này trình bày toàn bộ quá trình thiết lập: cách hoạt động của Local API, cách khởi chạy hồ sơ, cách kết nối Puppeteer với hồ sơ đó và cách tránh các lỗi phổ biến làm hỏng kết nối.
Tại sao kết hợp AdsPower và Puppeteer?

Cách sử dụng AdsPower với Puppeteer: Hướng dẫn thiết lập đầy đủ - Tại sao kết hợp AdsPower và Puppeteer?.
Puppeteer một mình rất mạnh mẽ nhưng dễ bị phát hiện. Một phiên bản Chrome headless mặc định để lộ các tín hiệu tự động hóa thông qua dấu vân tay, tiêu đề và hành vi. Các trang web chạy kiểm tra chống bot có thể gắn cờ nó một cách nhanh chóng.
AdsPower thay đổi phương trình. Mỗi hồ sơ chạy trong một môi trường biệt lập với Canvas, WebGL, user agent, múi giờ, ngôn ngữ và các tham số dấu vân tay khác của riêng nó. Khi bạn kết nối Puppeteer với một hồ sơ AdsPower, quá trình tự động hóa của bạn kế thừa dấu vân tay thực tế đó thay vì chữ ký trình duyệt mặc định.
Sự kết hợp này hữu ích cho:
- Quản lý nhiều tài khoản bán hàng thương mại điện tử mà không bị liên kết chéo tài khoản
- Thu thập dữ liệu từ các trang web chặn trình duyệt headless hoặc IP trung tâm dữ liệu
- Chạy các hành động truyền thông xã hội tự động trên các hồ sơ riêng biệt
- Kiểm thử ứng dụng web trong các điều kiện địa lý và thiết bị khác nhau
- Quy trình tiếp thị liên kết yêu cầu danh tính trình duyệt riêng biệt
Để so sánh rộng hơn về các tùy chọn trình duyệt chống phát hiện, hãy xem top 10 trình duyệt chống phát hiện được kiểm tra năm 2026 của chúng tôi.
Điều kiện tiên quyết

Cách sử dụng AdsPower với Puppeteer: Hướng dẫn thiết lập đầy đủ - Điều kiện tiên quyết.
Trước khi bắt đầu, hãy đảm bảo bạn có:
- AdsPower được cài đặt trên Windows, Mac hoặc Linux
- Gói AdsPower trả phí — Quyền truy cập Local API yêu cầu gói đăng ký trả phí
- Node.js được cài đặt, phiên bản 16 trở lên
- Puppeteer được cài đặt trong dự án của bạn:
npm install puppeteer
Hiểu về AdsPower Local API

Cách sử dụng AdsPower với Puppeteer: Hướng dẫn thiết lập đầy đủ - Hiểu về AdsPower Local API.
AdsPower cung cấp Local API chạy trên máy của bạn. Điểm cuối mặc định là:
http://local.adspower.net:50325/
Bạn cũng có thể sử dụng http://localhost:50325/. Nếu địa chỉ thay đổi, hãy đọc tệp local_api mà AdsPower tạo ra:
- MacOS: bên trong thư mục hỗ trợ ứng dụng
- Linux:
~/.config/adspower_global/cwd_global/source/local_api
Tất cả các lệnh gọi API chấp nhận tham số truy vấn dưới dạng chuỗi và trả về JSON. Khi xác minh bảo mật được bật, hãy bao gồm tiêu đề ủy quyền:
Authorization: Bearer your_api_key
Bước 1: Tạo hồ sơ trình duyệt

Cách sử dụng AdsPower với Puppeteer: Hướng dẫn thiết lập đầy đủ - Bước 1: Tạo hồ sơ trình duyệt.
Mở ứng dụng desktop AdsPower và tạo một hồ sơ mới. Đặt tên cho nó, chọn hệ điều hành và tùy chọn gán proxy. user_id của hồ sơ là thứ bạn sẽ sử dụng trong mọi lệnh gọi API.
Bạn có thể tìm thấy user_id trong danh sách hồ sơ hoặc bằng cách gọi điểm cuối truy vấn hồ sơ. Hãy giữ nó ở nơi thuận tiện.
Bước 2: Khởi chạy hồ sơ qua Local API
Điểm cuối cốt lõi để tích hợp Puppeteer là /api/v1/browser/start. Nó khởi chạy một hồ sơ và trả về địa chỉ gỡ lỗi WebSocket mà Puppeteer cần.
Dưới đây là ví dụ Node.js tối thiểu sử dụng fetch tích hợp:
const API_BASE = 'http://local.adspower.net:50325';
async function startBrowser(userId) {
const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}`;
const response = await fetch(url);
const result = await response.json();
if (result.code !== 0) {
throw new Error(`Không thể khởi chạy trình duyệt: ${result.msg}`);
}
return result.data;
}
const data = await startBrowser('your_profile_user_id');
console.log(data.ws.puppeteer); // ws://127.0.0.1:xxxx/devtools/browser/xxxxxx
Phản hồi chứa một đối tượng ws với hai điểm cuối gỡ lỗi:
ws.selenium— dành cho tự động hóa Seleniumws.puppeteer— dành cho tự động hóa Puppeteer
Sử dụng giá trị puppeteer trong bước tiếp theo.
Bước 3: Kết nối Puppeteer với hồ sơ đang chạy
Thay vì khởi chạy một trình duyệt mới bằng puppeteer.launch(), hãy sử dụng puppeteer.connect() để đính kèm vào hồ sơ AdsPower đang chạy:
import puppeteer from 'puppeteer';
const browser = await puppeteer.connect({
browserWSEndpoint: data.ws.puppeteer,
defaultViewport: null
});
const pages = await browser.pages();
const page = pages[0] || await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
Chi tiết quan trọng: browserWSEndpoint phải là chuỗi ws.puppeteer chính xác được trả về bởi API khởi chạy. Không thêm hoặc xóa các đoạn đường dẫn.
Bước 4: Chạy tự động hóa trên hồ sơ
Sau khi kết nối, bạn có thể sử dụng toàn bộ API Puppeteer. Dưới đây là một ví dụ thực tế mở một trang, chờ bộ chọn và trích xuất văn bản:
const page = await browser.newPage();
await page.goto('https://www.amazon.com', {
waitUntil: 'domcontentloaded',
timeout: 60000
});
await page.waitForSelector('#nav-logo-sprites', { timeout: 30000 });
const title = await page.title();
console.log(`Tiêu đề trang: ${title}`);
Đối với các tác vụ thu thập dữ liệu, hãy kết hợp hồ sơ với proxy dân cư. AdsPower hỗ trợ gán proxy cho từng hồ sơ, giúp che giấu IP của bạn cùng với dấu vân tay. Nếu bạn cần đề xuất proxy, bài đánh giá IPRoyal của chúng tôi bao gồm các tùy chọn dân cư, ISP và trung tâm dữ liệu.
Bước 5: Đóng trình duyệt và dọn dẹp
Khi quá trình tự động hóa của bạn hoàn tất, hãy ngắt kết nối Puppeteer và đóng trình duyệt AdsPower thông qua API:
await browser.disconnect();
const closeUrl = `${API_BASE}/api/v1/browser/stop?user_id=${userId}`;
await fetch(closeUrl);
Luôn đóng các hồ sơ bạn không sử dụng. Các hồ sơ nhàn rỗi tiêu tốn bộ nhớ và có thể can thiệp vào các lần chạy tự động hóa sau này.
Ví dụ thực tế: Thu thập dữ liệu với nhiều hồ sơ
Một trường hợp sử dụng phổ biến là thu thập dữ liệu từ cùng một trang web bằng nhiều hồ sơ để phân phối tải yêu cầu. Dưới đây là một mẫu worker nhỏ gọn:
const PROFILE_IDS = ['id_1', 'id_2', 'id_3'];
async function scrapeWithProfile(userId, targetUrl) {
const data = await startBrowser(userId);
const browser = await puppeteer.connect({
browserWSEndpoint: data.ws.puppeteer,
defaultViewport: null
});
const page = await browser.newPage();
await page.goto(targetUrl, { waitUntil: 'networkidle2' });
const result = await page.evaluate(() => {
return document.querySelector('h1')?.innerText || 'Không có tiêu đề';
});
console.log(`Hồ sơ ${userId}: ${result}`);
await browser.disconnect();
await fetch(`${API_BASE}/api/v1/browser/stop?user_id=${userId}`);
}
for (const id of PROFILE_IDS) {
await scrapeWithProfile(id, 'https://example.com');
}
Chạy các hồ sơ tuần tự hoặc sử dụng hàng đợi với độ đồng thời giới hạn. Gửi quá nhiều yêu cầu đồng thời từ cùng một máy vẫn có thể kích hoạt giới hạn tốc độ, ngay cả với dấu vân tay duy nhất.
Các tham số API hữu ích cho quy trình Puppeteer
Một số tham số tùy chọn trên điểm cuối khởi chạy đáng để biết:
| Tham số | Mặc định | Mục đích |
|---|---|---|
headless |
0 | Đặt thành 1 để khởi chạy hồ sơ ở chế độ headless |
launch_args |
- | Truyền cờ Chromium, chẳng hạn như tắt hình ảnh hoặc thông báo |
clear_cache_after_closing |
0 | Đặt thành 1 để xóa bộ nhớ cache khi trình duyệt đóng |
ip_tab |
1 | Kiểm soát việc trang phát hiện IP có mở hay không |
open_tabs |
0 | Mở hoặc đóng các tab đã lưu khi khởi chạy |
Ví dụ với các đối số khởi chạy:
const url = `${API_BASE}/api/v1/browser/start?user_id=${userId}` +
`&launch_args=["--disable-notifications","--blink-settings=imagesEnabled=false"]`;
Tắt hình ảnh có thể tăng tốc đáng kể việc thu thập dữ liệu khi nội dung trực quan không cần thiết.
Các sự cố phổ biến và cách khắc phục
Kết nối bị từ chối trên localhost:50325
Đảm bảo AdsPower đang chạy và bạn có gói trả phí. Local API không khả dụng trên tài khoản miễn phí. Kiểm tra tệp local_api nếu cổng đã thay đổi.
Puppeteer kết nối nhưng các trang trống
Gọi browser.pages() sau khi kết nối. AdsPower có thể mở một tab mặc định, nhưng nếu không có, hãy tạo một tab bằng browser.newPage().
Hồ sơ mở nhưng tự động hóa không tìm thấy phần tử
Sử dụng các chiến lược chờ thực tế. Ưu tiên waitForSelector với thời gian chờ rõ ràng thay vì các lệnh gọi sleep cố định. Nếu trang web chậm, hãy tăng thời gian chờ.
Chế độ headless bị phát hiện
Một số trang web phát hiện Chrome headless mạnh mẽ hơn. Nếu bạn gặp CAPTCHA ở chế độ headless, hãy chạy hồ sơ ở chế độ có giao diện (headless=0) hoặc sử dụng thiết lập proxy mạnh hơn.
AdsPower + Puppeteer so với các phương pháp tự động hóa khác
| Phương pháp | Kiểm soát dấu vân tay | An toàn đa tài khoản | Độ phức tạp thiết lập |
|---|---|---|---|
| Puppeteer thông thường | Thấp | Không | Thấp |
| Puppeteer + plugin stealth | Trung bình | Không | Trung bình |
| AdsPower + Puppeteer | Cao | Cao | Trung bình |
| AdsPower RPA | Cao | Cao | Thấp |
Nếu bạn cần tự động hóa đơn giản, không cần mã bên trong AdsPower, công cụ RPA tích hợp có thể đủ. Nhưng khi bạn cần logic tùy chỉnh, luồng có điều kiện hoặc tích hợp với mã Node.js của riêng bạn, tuyến Puppeteer linh hoạt hơn nhiều.
Đối với các thiết lập thương mại điện tử đa cửa hàng, mẫu tương tự cũng áp dụng. Xem hướng dẫn của chúng tôi về sử dụng AdsPower với Ecwid để quản lý đa cửa hàng để có quy trình cụ thể.
Đọc thêm liên quan
- AdsPower vs Octo Browser vs BitBrowser: Đã kiểm tra năm 2026 - So sánh AdsPower, Octo Browser và BitBrowser về dấu vân tay, tự động hóa, giá cả, gói miễn phí và các trường hợp sử dụng lý tưởng để chọn trình duyệt chống phát hiện phù hợp.
- Đánh giá Ticketmaster 2026: Phí, Ưu nhược điểm & Kết luận - Đánh giá Ticketmaster dựa trên bằng chứng bao gồm vé xác thực, phí, bán lại, hỗ trợ khách hàng, hiệu suất ứng dụng và những người thực sự nên sử dụng nó vào năm 2026.
- Đánh giá MaxBounty 2026: Ưu nhược điểm trung thực & Kết luận người dùng - Đọc các đánh giá MaxBounty thực tế từ các nhà tiếp thị liên kết vào năm 2026. Chúng tôi phân tích phê duyệt, thanh toán, chất lượng ưu đãi, hỗ trợ và liệu MaxBounty có đáng giá hay không.
Nguồn và đọc thêm
- 5 cách hiệu quả để thu thập dữ liệu web mà không bị chặn - Các trang web được trang bị các biện pháp chống thu thập dữ liệu sẵn sàng phát hiện và chặn bạn. Nhưng hãy làm theo năm cách này và thu thập dữ liệu web mà không bị chặn.
- Mở trình duyệt - Đường dẫn cơ bản: /api/v1/browser/start
Phương thức: GETMô tả: Để mở trình duyệt, bạn cần chỉ định ID hồ sơ. Sau khi khởi chạy thành công, bạn có thể lấy giao diện gỡ lỗi của trình duyệt để thực hiện Selenium a
- Tổng quan API - AdsPower hỗ trợ chức năng Local API để giúp người dùng lập trình đọc và ghi thông tin cấu hình hồ sơ, cũng như tạo, đóng và truy vấn hồ sơ và các chức năng API cơ bản khác. Bạn
Các câu hỏi thường gặp
Tôi có cần gói AdsPower trả phí để sử dụng Puppeteer không?
Có. Quyền truy cập Local API, cần thiết để tích hợp Puppeteer, chỉ khả dụng trên các gói trả phí.
Tôi có thể sử dụng Puppeteer với AdsPower trên Linux không?
Có. AdsPower hỗ trợ Windows, Mac và Linux. Local API hoạt động giống nhau trên các nền tảng, mặc dù đường dẫn tệp local_api khác nhau.
Puppeteer có thay thế tự động hóa tích hợp của AdsPower không?
Không. RPA của AdsPower là một công cụ trực quan, không cần mã. Puppeteer dành cho các nhà phát triển muốn kiểm soát lập trình đầy đủ. Chúng phục vụ các nhu cầu khác nhau và có thể cùng tồn tại.
Tôi có thể chạy nhiều kết nối Puppeteer cùng một lúc không?
Có. Khởi chạy nhiều hồ sơ thông qua API, sau đó kết nối một phiên bản Puppeteer riêng biệt với mỗi hồ sơ. Tuân thủ các giới hạn tốc độ API, thay đổi theo số lượng hồ sơ.
Điều gì xảy ra nếu địa chỉ WebSocket thay đổi giữa các lần chạy?
Giá trị ws.puppeteer được tạo mới mỗi lần khởi chạy. Luôn gọi /api/v1/browser/start và sử dụng địa chỉ được trả về thay vì mã hóa cứng.
Kết luận
AdsPower xử lý việc cô lập danh tính; Puppeteer xử lý tự động hóa hành vi. Kết nối chúng thông qua Local API cung cấp cho bạn dấu vân tay trình duyệt thực tế và giao diện viết kịch bản đầy đủ trong một quy trình. Mẫu rất đơn giản: khởi chạy hồ sơ, kết nối bằng puppeteer.connect(), tự động hóa, sau đó dừng hồ sơ.
Bắt đầu với một hồ sơ và một tập lệnh cơ bản. Khi kết nối ổn định, hãy mở rộng quy mô lên nhiều hồ sơ với proxy và hàng đợi. Sự kết hợp đó bao phủ hầu hết các nhu cầu đa tài khoản, thu thập dữ liệu và kiểm thử mà không kích hoạt các hệ thống chống bot chặn Puppeteer thông thường.
Để có thêm hướng dẫn về tự động hóa và proxy, hãy xem hướng dẫn thiết lập NetNut cho AdsPower và so sánh AdsPower vs Undetectable vs BitBrowser của chúng tôi.
