Sobre o projeto

Crawlee é uma biblioteca abrangente de web scraping e automação de navegador para Python, projetada para ajudar desenvolvedores a criar crawlers confiáveis rapidamente. Ela fornece uma solução de ponta a ponta para crawling e scraping, desde a descoberta de URLs até a extração e armazenamento de dados. Os principais recursos incluem: - **Interface unificada** para crawling via HTTP e navegador headless - **Crawling paralelo automático** baseado nos recursos do sistema - **Anotações de tipo** para melhor experiência do desenvolvedor e menos bugs - **Retries automáticos** em erros ou bloqueios - **Rotação de proxies** e gerenciamento de sessões - **Roteamento de requisições configurável** para direcionar URLs a manipuladores apropriados - **Fila de URLs persistente** para crawling - **Armazenamento plugável** para dados tabulares e arquivos - **Tratamento robusto de erros** Crawlee oferece dois tipos principais de crawlers: - **BeautifulSoupCrawler**: Usa biblioteca HTTP e BeautifulSoup para parsing de HTML, ideal para extração eficiente de dados sem execução de JavaScript - **PlaywrightCrawler**: Usa navegador headless via Playwright, adequado para sites com muito JavaScript que exigem interação Ele suporta várias bibliotecas de parsing, incluindo Parsel, BeautifulSoup e HTTP bruto, e pode baixar arquivos como HTML, PDF, JPG, PNG. A biblioteca funciona em modos headful e headless. Comparado ao Scrapy, Crawlee é baseado em asyncio, tem anotações de tipo completas, integração mais simples (scripts Python regulares), persistência de estado durante interrupções e armazenamentos de dados organizados (datasets e key-value stores). A instalação é direta via pip com extras opcionais para recursos adicionais. Uma ferramenta CLI está disponível para configuração rápida de projetos com templates. Crawlee é desenvolvido pela Apify e pode ser implantado na plataforma Apify para execução em nuvem. Documentação, guias e exemplos estão disponíveis no site do projeto Crawlee, com uma implementação em TypeScript também disponível para projetos JavaScript/TypeScript.