Perfis

Os perfis permitem que você persista dados do usuário—como armazenamento, cookies, cache e estados de login—em várias sessões. Isso possibilita uma automação mais suave, autenticação simplificada e desempenho otimizado.

Vantagens Principais

  • Reutilizar Histórico do Navegador: Os usuários podem reutilizar seu histórico de navegação em várias sessões.
  • Manter Status de Login: Permaneça logado em determinados sites para reduzir a necessidade de autenticação repetida.
  • Melhorar a Velocidade de Carregamento da Página: Aumente a velocidade de carregamento das páginas da web.
  • Reduzir o Risco de Detecção de Bot: Diminua as chances de ser identificado como um bot.

Usando Perfis

1. Criar um Perfil

Primeiro, crie um novo perfil usando a API de Perfis. Anote o profileId que é retornado; você o usará para atribuir o perfil a uma nova sessão.

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. Usar um Perfil

Uma vez que um perfil é criado, você pode adicioná-lo a uma nova sessão para reutilizar seus dados. Atribua o perfil incluindo o profileId na sua configuração de sessão.

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

Se você quiser que a nova sessão atualize os dados do perfil, você deve definir profilePersist: true dentro do objeto do perfil. Isso deve ser feito na primeira vez que você usa um novo perfil em uma sessão para garantir que seus dados possam ser salvos para uso posterior.

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

Por padrão, um contexto carregará os dados salvos de uma sessão anterior, mas não os atualizará. Se você precisar armazenar novos cookies, tokens de autenticação ou dados em cache, você deve definir profilePersist: true ao criar a sessão. Os dados serão salvos quando a sessão for fechada. Isso garante que quaisquer alterações feitas durante a sessão—como login, salvamento de preferências do site ou cache de ativos—sejam preservadas para sessões futuras e não sejam perdidas quando a sessão terminar.

3. Recuperar Perfis

Você pode buscar um perfil específico pelo seu ID ou listar todos os perfis que você criou usando parâmetros de consulta. Por favor, consulte a referência da API de Perfil para o esquema completo e os parâmetros.

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

Quando profilePersist: true está habilitado, apenas os dados da última sessão a fechar serão salvos.

4. Compartilhar um Perfil entre Múltiplas Sessões

Se você quiser que várias sessões compartilhem o mesmo perfil, a configuração padrão profilePersist: false permite que você use a configuração de perfil anterior em várias sessões sem fazer nenhuma alteração. Se você deseja atualizar o perfil dentro dessas sessões, você precisará habilitar a persistência.

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

Nota: Quando profilePersist: true está habilitado, apenas os dados da última sessão a fechar serão salvos.

5. Excluir Perfis

Exclua perfis não utilizados para liberar recursos. Uma vez excluído, um perfil não pode mais ser anexado a nenhuma sessão.

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

👉 Para exemplos e amostras de código relacionados a perfis, visite Atualizações do Produto | Novo Recurso de Perfil.