Tài liệuTrình duyệt và CrawlAgent BrowserHồ sơ

Profiles

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

Ưu điểm 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 mình qua các phiên.
  • Duy trì trạng thái đăng nhập: Giữ trạng thái đăng nhập vào một số trang web nhất định để 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 rủi ro bị phát hiện là bot: Hạ thấp khả năng bị nhận diện là bot.

Sử dụng Profiles

1. Tạo một Profile

Trước tiên, hãy tạo một profile mới bằng Profiles API. Lưu ý profileId được trả về; bạn 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 một Profile

Sau khi một 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 thêm profileId vào 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 bên trong đối tượng profile. Việc này nên được thực hiện trong lần đầu tiên bạn sử dụng một profile mới trong một phiên để đảm bảo dữ liệu của nó có thể được lưu cho lần sử dụng sau.

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

Theo mặc định, một context sẽ tải dữ liệu đã lưu từ phiên trước nhưng sẽ không cập nhật dữ liệu đó. Nếu bạn cần lưu trữ cookie, token xác thực hoặc dữ liệu cache mới, bạn phải đặt profilePersist: true khi tạo phiên. Dữ liệu sẽ được lưu khi phiên đóng lại. Điều này đảm bảo 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 cache tài nguyên—được giữ lại 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ể lấy một profile cụ thể theo 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 tham số truy vấn. Vui lòng tham khảo Profile API reference để biết schema 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 });
Note

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

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

Nếu bạn muốn nhiều phiên chia sẻ cùng một profile, thiết lập 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 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 persistence.

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 đóng lại cuối cù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 đã 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');

👉 Để xem ví dụ và mẫu mã liên quan đến profiles, vui lòng truy cập Product Updates | New Profile Feature.