Profiles

Profiles cho phép bạn duy trì dữ liệu người dùng—như bộ nhớ, cookie, bộ nhớ đệm và trạng thái đăng nhập—qua nhiều phiên. Điều này giúp tự động hóa mượt mà hơn, xác thực đơn giản hơn và hiệu suất được tối ưu hóa.

Lợi ích cốt lõi

  • Tái sử dụng lịch sử trình duyệt: Người dùng có thể tái sử dụng lịch sử duyệt web của họ qua các phiên.
  • Duy trì trạng thái đăng nhập: Duy trì trạng thái đăng nhập vào một số trang web để giảm nhu cầu xác thực lặp lại.
  • Cải thiện tốc độ tải trang: Nâng cao tốc độ tải của các trang web.
  • Giảm nguy cơ bị phát hiện là bot: Giảm khả năng bị nhận dạng là bot.

Sử dụng Profiles

1. Tạo Profile

Đầu tiên, tạo một profile mới bằng cách sử dụng API Profiles. Ghi lại profileId được trả về; bạn sẽ sử dụng nó để gán profile cho một phiên mới.

import { ScrapelessClient } from '@scrapeless-ai/sdk';
 
const client = new ScrapelessClient({ apiKey: 'API Key' });
const createResponse = await client.profiles.create('My Profile');
console.log('Profile created:', createResponse);

2. Sử dụng Profile

Sau khi profile được tạo, bạn có thể thêm nó vào một phiên mới để tái sử dụng dữ liệu của nó. Gán profile bằng cách bao gồm profileId trong cấu hình phiên của bạn.

import { ScrapelessClient } from '@scrapeless-ai/sdk';
 
const client = new ScrapelessClient({ apiKey: 'API Key' });
const { browserWSEndpoint } = client.browser.create({
    sessionName: 'My Browser',
    sessionTTL: 30000,
    profileId: 'your-profile-id',
});
 
(async () => {
    const browser = await puppeteer.connect({browserWSEndpoint});
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    console.log(await page.title());
    await browser.close();
})();

Nếu bạn muốn phiên mới cập nhật dữ liệu profile, bạn phải đặt profilePersist: true trong đối tượng profile. Điều này nên được thực hiện lần đầu tiên bạn sử dụng một profile mới trong một phiên để đảm bảo rằng dữ liệu của nó có thể được lưu cho lần sử dụng tiếp theo.

const { browserWSEndpoint } = client.browser.create({
    sessionName: 'My Browser',
    sessionTTL: 30000,
    profileId: 'your-profile-id',
    profilePersist: true,
});
Tại sao sử dụng persist?

Theo mặc định, một ngữ cảnh sẽ tải dữ liệu đã lưu từ một phiên trước đó nhưng sẽ không cập nhật nó. Nếu bạn cần lưu trữ cookie mới, mã thông báo xác thực hoặc dữ liệu được lưu trong bộ nhớ cache, bạn phải đặt profilePersist: true khi tạo phiên. Dữ liệu sẽ được lưu khi phiên được đóng. Điều này đảm bảo rằng mọi thay đổi được thực hiện trong phiên—chẳng hạn như đăng nhập, lưu tùy chọn trang web hoặc lưu tài sản vào bộ nhớ cache—được bảo toàn cho các phiên trong tương lai và không bị mất khi phiên kết thúc.

3. Truy xuất Profiles

Bạn có thể tìm nạp một profile cụ thể bằng ID của nó hoặc liệt kê tất cả các profile bạn đã tạo bằng cách sử dụng các tham số truy vấn. Vui lòng tham khảo tài liệu tham khảo API Profile để biết sơ đồ và các tham số đầy đủ.

// get a specific profile
const profile = await client.profiles.get('your-profile-id');
 
// get profile list
const profiles = await client.profiles.list({ page: 1, pageSize: 10 });
Lưu ý

Khi profilePersist: true được bật, chỉ dữ liệu từ phiên cuối cùng đóng mới được lưu.

4. Chia sẻ Profile qua nhiều phiên

Nếu bạn muốn nhiều phiên chia sẻ cùng một profile, cài đặt mặc định profilePersist: false cho phép bạn sử dụng cấu hình profile trước đó qua nhiều phiên mà không cần thực hiện bất kỳ thay đổi nào. Nếu bạn muốn cập nhật profile trong các phiên này, bạn sẽ cần bật tính năng duy trì.

const { browserWSEndpoint } = client.browser.create({
    sessionName: 'My Browser',
    sessionTTL: 30000,
    profileId: 'your-profile-id',
});

Lưu ý: Khi profilePersist: true được bật, chỉ dữ liệu từ phiên cuối cùng đóng mới được lưu.

5. Xóa Profiles

Xóa các profile không sử dụng để giải phóng tài nguyên. Sau khi bị xóa, một profile không thể được gắn vào bất kỳ phiên nào nữa.

const deleteResponse = await client.profiles.delete('your-profile-id');

👉 Để biết ví dụ và mẫu mã liên quan đến profile, vui lòng truy cập Cập nhật sản phẩm | Tính năng Profile mới.