配置文件
配置文件允许您在多个会话中持久化用户数据,例如存储、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,
});默认情况下,上下文将加载从先前会话保存的数据,但不会更新它。如果您需要存储新的 Cookie、身份验证令牌或缓存数据,则在创建会话时必须设置 profilePersist: true。数据将在会话关闭时保存。这确保了在会话期间进行的任何更改(例如登录、保存站点偏好或缓存资产)都会保留以供将来会话使用,并且在会话结束时不会丢失。
3. 检索配置文件
您可以通过其 ID 获取特定配置文件,或使用查询参数列出您创建的所有配置文件。请参阅 Profile API reference 以获取完整的架构和参数。
// 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');👉 有关配置文件的示例和代码示例,请访问 Product Updates | New Profile Feature。