Playwright
O Scraping Browser fornece uma plataforma serverless de alto desempenho, projetada para simplificar o processo de extração de dados de sites dinâmicos. Por meio da integração perfeita com o Playwright, os desenvolvedores podem executar, gerenciar e monitorar navegadores headless sem precisar de recursos de servidor dedicados, permitindo automação web eficiente e coleta de dados.
Instalando Bibliotecas Necessárias
Primeiro, instale o playwright-core, uma versão leve do Playwright usada para conectar a instâncias de navegador existentes:
npm install playwright-core
Escrevendo Código para Conectar ao Scraping Browser
Em seu código Playwright, conecte-se ao Scraping Browser usando o seguinte:
const { Playwright } = require('@scrapeless-ai/sdk');
(async () => {
const browser = await Playwright.connect({
apiKey: 'Your API key',
session_name: 'sdk_test',
session_ttl: 180,
proxy_country: 'US',
session_recording: true,
});
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.scrapeless.com');
console.log(await page.title());
await browser.close();
})();
Isso permite que você aproveite a infraestrutura do Scraping Browser, incluindo escalabilidade, rotação de IP e acesso global.
Exemplos Práticos
Aqui estão algumas operações comuns do Playwright após a integração do Scraping Browser:
- Navegação e Extração de Conteúdo da Página
const page = await browser.newPage();
await page.goto('https://www.example.com');
console.log(await page.title());
const html = await page.content();
console.log(html);
await browser.close();
- Tirando Capturas de Tela
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.example.com');
await page.screenshot({ path: 'example.png' });
console.log('Screenshot salvo como example.png');
await browser.close();
- Executando Código Personalizado
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://www.example.com');
const result = await page.evaluate(() => document.title);
console.log('Título da página:', result);
await browser.close();
- Simula um clique do mouse.
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.realClick('button[type="submit"]');
- Simular entrada de teclado.
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.realFill('#login-email', 'scrapeless@gmail.com');
- Obter a URL da página atual usando o Scrapeless Agent
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
const { error, liveURL } = await cdpSession.liveURL();
- Resolver Captcha de Imagem
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.imageToText({
imageSelector: '.captcha__image',
inputSelector: 'input[name="captcha"]',
timeout: 30000,
});
- Desativar a resolução automática de captcha
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.disableCaptchaAutoSolve();
- Resolver manualmente um captcha com opções especificadas
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.solveCaptcha();
- Aguardar a detecção de um captcha na página
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.waitCaptchaDetected({ timeout: 30000 });
- Aguardar a resolução de um captcha (com sucesso ou falha)
const { createPlaywrightCDPSession } = require('@scrapeless-ai/sdk');
// ... conectar ao Scraping Browser como mostrado acima
const cdpSession = await createPlaywrightCDPSession(page);
await cdpSession.waitCaptchaSolved({ timeout: 30000 });