Browser功能配置文件

配置文件

配置文件允许您在多个会话中持久化用户数据,例如存储、Cookie、缓存和登录状态。这使得自动化更加流畅,身份验证更简单,性能更优化。

主要优势

  • 重用浏览器历史记录: 用户可以在多个会话中重用其浏览历史记录。
  • 保持登录状态: 保持登录某些站点,以减少重复身份验证的需求。
  • 提高页面加载速度: 提高网页的加载速度。
  • 降低被识别为机器人的风险: 降低被识别为机器人的可能性。

使用配置文件

1. 创建配置文件

首先,使用 Profiles API 创建一个新的配置文件。请记下返回的 profileId;您将使用它来将配置文件分配给新的会话。

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. 使用配置文件

创建配置文件后,您可以将其添加到新的会话以重用其数据。通过在会话配置中包含 profileId 来分配配置文件。

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();
})();

如果您希望新会话更新配置文件数据,则必须在配置文件对象中设置 profilePersist: true。第一次在会话中使用新配置文件时,应执行此操作,以确保可以保存其数据以供后续使用。

const { browserWSEndpoint } = client.browser.create({
    sessionName: 'My Browser',
    sessionTTL: 30000,
    profileId: 'your-profile-id',
    profilePersist: true,
});
为什么要使用 persist?

默认情况下,上下文将加载从先前会话保存的数据,但不会更新它。如果您需要存储新的 Cookie、身份验证令牌或缓存数据,则必须在创建会话时设置 profilePersist: true。数据将在会话关闭时保存。这确保了在会话期间所做的任何更改(例如登录、保存站点首选项或缓存资产)都会保留以供将来会话使用,并且不会在会话结束时丢失。

3. 获取配置文件

您可以通过其 ID 获取特定配置文件,或使用查询参数列出您创建的所有配置文件。有关完整的模式和参数,请参阅配置文件 API 参考

// 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 });
注意

启用 profilePersist: true 时,只会保存最后一个关闭会话的数据。

4. 在多个会话中共享配置文件

如果您希望多个会话共享同一个配置文件,则默认设置 profilePersist: false 允许您在多个会话中使用之前的配置文件配置,而无需进行任何更改。如果您希望在这些会话中更新配置文件,则需要启用持久性。

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

注意:启用 profilePersist: true 时,只会保存最后一个关闭会话的数据。

5. 删除配置文件

删除未使用的配置文件以释放资源。删除后,配置文件将无法再附加到任何会话。

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

👉 有关配置文件的示例和代码样本,请访问产品更新 | 新的配置文件功能