📚 Hướng Dẫn Sử Dụng GoLogin và Puppeteer
🔹 Giới thiệu về GoLogin và các tính năng của nó
GoLogin là một công cụ quản lý danh tính trình duyệt mạnh mẽ cho phép bạn tạo và kiểm soát nhiều hồ sơ trình duyệt, mỗi hồ sơ đều có dấu vân tay riêng biệt. Thay vì phải quản lý nhiều thiết bị hoặc xóa cookie, bạn có thể quản lý tất cả trong một nơi, đồng thời vẫn xuất hiện như những người dùng độc lập trên mạng.
Khi kết hợp với Puppeteer, GoLogin trở nên hữu ích hơn cho các nhà phát triển. Nó cho phép bạn tự động hóa các tác vụ như kiểm thử, thu thập dữ liệu hoặc quản lý tài khoản một cách tự nhiên và tránh bị phát hiện. Điều này đặc biệt có giá trị cho các nhà phát triển, tiếp thị và doanh nghiệp dựa vào tự động hóa và quy trình làm việc với nhiều tài khoản.
👉 Các tính năng chính của GoLogin:
- Dấu vân tay trình duyệt độc đáo cho mỗi hồ sơ.
- Tích hợp proxy tích hợp cho việc lướt web an toàn.
- Đồng bộ đám mây để truy cập hồ sơ từ bất kỳ đâu.
- Tùy chọn hợp tác và chia sẻ cho nhóm.
- Hỗ trợ đa nền tảng (Windows, macOS, Linux và Android).
- Hỗ trợ Puppeteer & Selenium cho tự động hóa liền mạch.
📖 Nội dung hướng dẫn
Trong hướng dẫn này, chúng ta sẽ:
- Cài đặt các gói cần thiết
- Lấy mã thông báo API của GoLogin
- Tạo một hồ sơ GoLogin
- Khởi động trình duyệt với GoLogin
- Sử dụng Puppeteer với trình duyệt GoLogin (demo)
- Đóng trình duyệt
- Xóa hồ sơ GoLogin
1️⃣ Cài đặt các gói cần thiết
Để bắt đầu, chúng ta cần thiết lập một dự án Node.js với TypeScript và cài đặt các phụ thuộc cần thiết. Trong hướng dẫn này, chúng ta sẽ sử dụng:
- GoLogin Node.js SDK → để tương tác với các hồ sơ và trình duyệt GoLogin.
- dotenv → để quản lý mã thông báo API của bạn một cách an toàn trong tệp .env.
bash
npm install gologin dotenv
2️⃣ Lấy mã thông báo API của GoLogin
Để sử dụng GoLogin theo cách lập trình, bạn sẽ cần một mã thông báo API. Mã thông báo này cho phép ứng dụng Node.js của bạn xác thực với GoLogin và thực hiện các hành động như tạo hồ sơ hoặc khởi động trình duyệt. Dưới đây là cách lấy mã thông báo:
- Đăng nhập vào Bảng điều khiển GoLogin của bạn → https://app.gologin.com
- Nhấp vào avatar hồ sơ của bạn (góc trên bên phải).
- Vào Hồ sơ → API → Mã thông báo API.
- Sao chép mã thông báo và dán vào tệp .env của bạn như sau:
bash
#dotenv
GOLOGIN_TOKEN = 'XXXXXXXXXXXX' // mã thông báo của bạn
3️⃣ Tạo một hồ sơ GoLogin
Tôi sẽ hướng dẫn bạn hai cách để tạo một hồ sơ GoLogin:
🔹 1. Tạo hồ sơ với dấu vân tay ngẫu nhiên + Proxy GoLogin (theo khu vực)
javascript
// GÁN LOẠI PROXY 'resident' CHO HỒ SƠ DỰA TRÊN KHU VỰC
// LOẠI PROXY MẶC ĐỊNH LÀ 'mobile' CẦN ĐƯỢC MUA TỪ GOLOGIN
async function createGoLoginProfile(email: string) {
try {
const GL = GologinApi({ token: process.env.GOLOGIN_TOKEN });
const region = 'us';
const { id } = await GL.createProfileRandomFingerprint(email);
await GL.addGologinProxyToProfile(id, region, 'resident');
await GL.exit();
return id;
}
catch (error) {
console.log(error);
throw new Error("KHÔNG THỂ TẠO HỒ SƠ");
}
}
Bạn sẽ nhận được 'id' (id hồ sơ) thông qua hàm createProfileRandomFingerprint() mà mong đợi một tham số là name cho hồ sơ. Tôi đã sử dụng email làm tên hồ sơ, bạn có thể sử dụng bất kỳ chuỗi nào khác.
Điều quan trọng cần nhớ ở đây là tham số tùy chọn thứ ba là proxyType nhưng chỉ quan trọng khi bạn muốn một loại proxy cụ thể. Có ba loại mobile, resident & data center, mặc định sẽ phân bổ proxy di động.
Dưới đây là tham chiếu mã để biết về addGologinProxyToProfile() và proxyType:
javascript
type ProxyType = 'mobile' | 'resident' | 'dataCenter';
addGologinProxyToProfile: (profileId: string, countryCode: string, proxyType?: ProxyType | '') => Promise<ProxyResponse>;
🔹 2. Tạo hồ sơ với các tham số tùy chỉnh
javascript
async function createGoLoginProfile(email: String): Promise<string> {
try {
const GL = GologinApi({ token: process.env.GOLOGIN_TOKEN });
const profileId = await GL.createProfileWithCustomParams({
name: email,
os: 'win', //'lin' | 'mac' | 'win' | 'android'
proxy: {
mode: 'http', //'http' | 'https' | 'socks4' | 'socks5' | 'geolocation' | 'none' | 'tor' | 'gologin'
host: '', // host của bạn
port: , // cổng của bạn
username: ``, // tên người dùng proxy của bạn
password: '' // mật khẩu proxy của bạn
},
autoLang: true,
folderName: "Vaibhav",
notes: "testing"
})
await GL.exit();
if (profileId) {
return profileId;
}
else {
throw new Error('KHÔNG THỂ TẠO HỒ SƠ');
}
}
catch (error) {
console.log(error);
throw error;
}
}
Hàm createProfileWithCustomParams() sẽ tạo một hồ sơ Gologin tùy chỉnh với các tham số tùy chỉnh. Tôi đã sử dụng một proxy tùy chỉnh mà bạn có thể thấy rõ trong các tham số mã ở trên. Các tham số như folderName và notes là những tính năng bạn có thể thấy trong bảng điều khiển. Tôi cũng đã đề cập các tùy chọn cho các tham số khác như os và proxy.mode, bạn có thể khám phá thêm từ tài liệu chính thức.
LƯU Ý: Đừng quên thoát khỏi phiên GoLogin bằng cách sử dụng exit(). Nếu bạn tách biệt từng chức năng hoặc thực hiện mọi thứ trong một hàm duy nhất thì hãy cố gắng dừng phiên theo cách sử dụng của bạn.
4️⃣ Khởi động trình duyệt với GoLogin, chạy demo Puppeteer và đóng phiên
Sau khi tạo một hồ sơ, bước tiếp theo là khởi động một phiên trình duyệt liên kết với hồ sơ đó. Điều này đảm bảo phiên lướt web của bạn sử dụng dấu vân tay độc đáo và cấu hình proxy liên kết với nó.
javascript
async function launchGoLoginBrowser(profileId: string) {
const GL = GologinApi({ token: process.env.GOLOGIN_TOKEN });
// KHỞI ĐỘNG HỒ SƠ GOLOGIN VỚI CÁC THAM SỐ BỔ SUNG (THEO VÍ DỤ CHÍNH THỨC)
// SỬ DỤNG KHÁM PHÁ KIỂU VÌ ĐỊNH NGHĨA TYPESCRIPT ĐÃ LỖI THỜI GIAN NHƯNG API HỖ TRỢ THAM SỐ BỔ SUNG
const { browser } = await GL.launch({
// GOLOGIN CUNG CẤP MỘT TRÌNH DUYỆT ĐÁM MÂY CÓ THỂ ĐƯỢC SỬ DỤNG ĐỂ THỰC HIỆN TỰ ĐỘNG HÓA PUPPETEER.
// NÓ SẼ QUẢN LÝ VIỆC KHỞI ĐỘNG VÀ ĐÓNG TRÌNH DUYỆT - BẠN CHỈ CẦN KIỂM SOÁT TRÌNH DUYỆT VỚI PUPPETEER.
profileId,
extra_params: [
'--disable-gpu',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--display=:99'
],
tmpdir: "C:/Desktop/gologin_data"
} as any);
const newPage = await browser.newPage();
await newPage.goto('https://the-internet.herokuapp.com/login', { timeout: 60000 });
try {
const username = await newPage.waitForSelector('input#username');
const password = await newPage.waitForSelector('input#password');
const loginButton = await newPage.waitForSelector('button[type="submit"]');
if (!username || !password || !loginButton) {
console.log('KHÔNG THỂ TÌM THẤY TÊN NGƯỜI DÙNG HOẶC MẬT KHẨU');
}
else {
await username.type('tomsmith', { delay: 1000 });
await password.type('SuperSecretPassword!', { delay: 1000 });
}
await Promise.all([
loginButton.click(),
newPage.waitForNavigation({ waitUntil: 'networkidle0' }),
]);
} catch (error) {
console.log('KHÔNG THỂ TÌM THẤY TÊN NGƯỜI DÙNG HOẶC MẬT KHẨU');
}
await newPage.close();
await browser.close();
await GL.exit();
}
Vui lòng đọc mã trên một cách cẩn thận, nếu bạn quen thuộc với Puppeteer thì bạn không cần quá nhiều giải thích, nhưng để tóm tắt lại, tôi chỉ đang kiểm tra hoạt động của Puppeteer thông qua việc chờ cho các selector, nhập vào các trường đầu vào, kích hoạt điều hướng bằng cách nhấp vào nút và chờ điều hướng thành công.
Về các tham số mà tôi đã sử dụng trong hàm launch(), bạn có thể đọc về tham số cloud trong các dòng đã được chú thích trong mã.
Tôi muốn thông báo cho bạn về một tham số cụ thể tmpdir, khi bạn khởi động một trình duyệt cục bộ với một hồ sơ, GoLogin cần tạo một thư mục làm việc tạm thời trên hệ thống của bạn để lưu trữ các thứ như Cookies, Cache, tệp phiên trình duyệt, dữ liệu tiện ích, v.v. và khi trình duyệt đóng lại, GoLogin thường đồng bộ hóa dữ liệu quan trọng trở lại kho lưu trữ hồ sơ đám mây của họ, và các tệp tạm có thể bị xóa.
5️⃣ Xóa hồ sơ GoLogin
Khi bạn đã hoàn thành việc kiểm thử hoặc tự động hóa, bạn có thể muốn xóa hồ sơ GoLogin mà bạn đã tạo trước đó.
javascript
async function deleteGoLoginProfile(profileId: string) {
try {
const GL = GologinApi({ token: process.env.GOLOGIN_TOKEN });
await GL.deleteProfile(profileId);
await GL.exit();
console.log("HỒ SƠ ĐÃ ĐƯỢC XÓA VỚI ID : ", profileId);
}
catch (error) {
throw new Error("KHÔNG THỂ XÓA HỒ SƠ");
}
}
🎯 Kết luận
Trong hướng dẫn này, chúng ta đã khám phá cách tích hợp GoLogin với Puppeteer trong Node.js (TypeScript). Chúng ta đã bắt đầu bằng cách cài đặt các gói cần thiết, lấy mã thông báo API của GoLogin, tạo và khởi động một hồ sơ trình duyệt, chạy một demo Puppeteer, và cuối cùng là học cách dọn dẹp bằng cách đóng và xóa hồ sơ.
✨ Cảm ơn bạn đã đọc hướng dẫn này! Hy vọng nó sẽ hữu ích cho bạn.
-Vaibhav Pushpad
Kết nối với tôi trên LinkedIn