- Crawlee é uma biblioteca Python para web scraping e automação de navegador
- Ajuda a criar crawlers confiáveis rapidamente
- Pode ser usada para extração de dados para AI, LLM, RAG e GPT
- Pode baixar arquivos como HTML, PDF, JPG e PNG de sites
- Funciona com BeautifulSoup, Playwright e HTTP puro
- Suporta tanto o modo headful quanto o modo headless
- Oferece rotação de proxies
Recursos
- Fornece uma interface unificada para crawling via HTTP e navegador headless
- Executa crawling paralelo automaticamente com base nos recursos de sistema disponíveis
- Escrita em Python com type hints, melhorando o autocompletar da IDE e reduzindo bugs
- Repetição automática em caso de erro ou bloqueio
- Recursos integrados de rotação de proxies e gerenciamento de sessões
- Roteamento de requisições configurável - envia URLs diretamente para o handler apropriado
- Fila persistente para as URLs a serem rastreadas
- Armazenamento plugável tanto para dados tabulares quanto para arquivos
- Recursos robustos de tratamento de erros
Diferenças em relação ao Scrapy
- O Crawlee oferece suporte nativo a crawling com navegador headless (Playwright)
- Interface simples e elegante - é possível configurar um scraper com menos de 10 linhas de código
- Aplicação completa de type hints
- Baseado em Asyncio padrão
Opinião do GN⁺
- O Crawlee parece ser uma ferramenta poderosa para web scraping e crawling. Em especial, o suporte nativo a crawling baseado em navegador headless parece ser uma grande vantagem.
- Como é possível criar crawlers com uma interface simples e pouco código, a produtividade parece alta. Além disso, o uso ativo de type hints melhora a experiência de desenvolvimento e reduz a possibilidade de erros.
- Se for um projeto que precisa de crawling para extração de dados, vale considerar seriamente o Crawlee. Em especial, se você precisar rastrear páginas que exigem renderização em JavaScript, o PlaywrightCrawler parece ser útil.
- No entanto, se for necessário crawling em escala muito grande ou se a baixa latência for essencial, pode ser melhor usar o Scrapy ou outra ferramenta com suporte a crawling distribuído.
- Também parece recomendável revisar bem as políticas de crawling e as questões legais antes de usar.
2 comentários
Eu sabia que tinha suporte a Node, mas pelo visto também tem suporte a Python. Se for um scraper que precise de manutenção contínua, acho que vale considerar seriamente um framework hehe
Opiniões no Hacker News
É importante documentar os recursos existentes. Não adianta uma plataforma de web scraping ser excelente se só quem a criou consegue entendê-la
tiered_proxy_urls: list[list[str]] | None = None.csve.xlsxrobots.txt, HTTP e tags de conteúdo. Isso se tornou especialmente importante após a diretiva DSM da UEObrigado à Apify/Crawlee. Como usuário antigo de Node.js, essa foi a biblioteca que melhor funcionou para mim
Descobri o Crawlee enquanto procurava uma stack para um projeto. Eu queria uma biblioteca Python, mas acabei usando o Crawlee com Typescript e concluí o projeto em uma semana
Fico curioso sobre como ele se diferencia do Scrapy
Fico curioso sobre qual seria o motivo para migrar de outras bibliotecas. Já construí meu próprio crawler, mas não encontrei nada particularmente único
O código Python moderno parece legal
const data = await crawler.get_data()parece Javascript. Parece que está faltando um underscoreSugiro trazer mais snippets de código dos casos de teste para os exemplos da documentação. Bom trabalho
Ferramentas de scraping são sempre bem-vindas. Pretendo experimentar em um projeto pessoal. Graças à IA, o scraping hoje parece vender pás em uma corrida do ouro