
Biblioteca Node.js de web scraping e automação de navegador para construir crawlers confiáveis com suporte a HTTP e navegador headless, rotação de proxy e fingerprinting semelhante ao humano.
O Crawlee cobre seu crawling e scraping de ponta a ponta e ajuda você a construir scrapers confiáveis. Rápido.
Seus crawlers parecerão humanos e passarão despercebidos pelas proteções modernas contra bots, mesmo com a configuração padrão. O Crawlee oferece as ferramentas para rastrear a web em busca de links, extrair dados e armazená-los em disco ou na nuvem, mantendo-se configurável para atender às necessidades do seu projeto.
O Crawlee está disponível como o pacote NPM crawlee.
👉 Veja a documentação completa, guias e exemplos no site do projeto Crawlee 👈
Você prefere 🐍 Python em vez de JavaScript? 👉 Confira o Crawlee para Python 👈.
Recomendamos visitar o tutorial de Introdução na documentação do Crawlee para mais informações.
O Crawlee requer Node.js 22.13 ou superior.
A maneira mais rápida de experimentar o Crawlee é usar o Crawlee CLI e escolher o exemplo de primeiros passos. O CLI instalará todas as dependências necessárias e adicionará código boilerplate para você brincar.
npx crawlee create my-crawler
cd my-crawler
npm start
Se você preferir adicionar o Crawlee ao seu próprio projeto, experimente o exemplo abaixo. Como ele usa PlaywrightCrawler, também precisamos instalar o Playwright. Ele não é incluído no Crawlee para reduzir o tamanho da instalação.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
Por padrão, o Crawlee armazena dados em ./storage no diretório de trabalho atual. Você pode substituir esse diretório através da configuração do Crawlee. Para detalhes, veja o guia de Configuração, Armazenamento de requisições e Armazenamento de resultados.
Fornecemos builds beta automatizados para cada alteração de código mesclada no Crawlee. Você pode encontrá-los na lista de lançamentos do npm. Se você quiser testar novos recursos ou correções de bugs antes que os lancemos, sinta-se à vontade para instalar um build beta assim:
npm install crawlee@next
Se você também usa o Apify SDK, precisa especificar substituições de dependências no seu arquivo package.json para não acabar com várias versões do Crawlee instaladas:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
O Crawlee é open-source e roda em qualquer lugar, mas como é desenvolvido pela Apify, é fácil configurá-lo na plataforma Apify e executá-lo na nuvem. Visite o site do Apify SDK para saber mais sobre como implantar o Crawlee na plataforma Apify.
Se você encontrar qualquer bug ou problema com o Crawlee, por favor envie uma issue no GitHub. Para perguntas, você pode perguntar no Stack Overflow, nas Discussões do GitHub ou pode entrar no nosso servidor do Discord.
Suas contribuições de código são bem-vindas, e você será elogiado pela eternidade! Se você tiver alguma ideia de melhoria, envie uma issue ou crie um pull request. Para diretrizes de contribuição e o código de conduta, veja CONTRIBUTING.md.
Este projeto está licenciado sob a Apache License 2.0 - veja o arquivo LICENSE.md para detalhes.