配置文件
配置文件允许您在多个会话中持久化用户数据,例如存储、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 获取特定配置文件,或使用查询参数列出您创建的所有配置文件。有关完整的模式和参数,请参阅配置文件 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');
👉 有关配置文件的示例和代码样本,请访问产品更新 | 新的配置文件功能。