- Contorna a estrutura complexa da web moderna e sistemas antibot e lida com tudo, de uma única requisição a crawling em larga escala
- Inclui um parser inteligente que redescobre automaticamente elementos quando a estrutura do site muda
- Inclui um módulo Fetcher com bypass nativo para os principais sistemas de segurança, como Cloudflare Turnstile
- Suporta recursos de crawling em larga escala por meio do framework Spider, incluindo concorrência, gerenciamento de sessão, pausa/retomada e rotação de proxy
- API semelhante ao Scrapy: uso de
start_urls, callbacks parse assíncronos e objetos Request/Response
- Crawling concorrente e isolamento de sessões: várias sessões de navegador podem ser executadas em paralelo
- Função de pausa e retomada baseada em checkpoint: estabilidade mesmo em crawls de longa duração
- Modo de streaming em tempo real: permite processar os dados coletados imediatamente ou refletí-los na UI
- Detecta automaticamente requisições bloqueadas e permite novas tentativas com lógica personalizada
- É possível exportar resultados para seu próprio pipeline usando Hooks (JSON/JSONL)
- Fetching avançado de websites com suporte a sessão
- A classe Fetcher oferece recursos avançados de requisição como HTTP/3, falsificação de fingerprint TLS e disfarce de headers
- O DynamicFetcher executa automação de navegador baseada em Playwright/Chrome
- O StealthyFetcher contorna automaticamente defesas antibot como Cloudflare Turnstile
- Com o ProxyRotator, é possível trocar proxies por requisição e controlar bloqueios por domínio
- Todos os Fetchers operam de forma assíncrona (async) e fornecem classes de sessão (
FetcherSession, DynamicSession etc.)
- Scraping adaptativo para redescobrir automaticamente elementos mesmo após mudanças no website
- Algoritmo de rastreamento de elementos baseado em similaridade: coleta de dados robusta contra mudanças estruturais
- Suporte completo a seletores baseados em CSS/XPath/texto/expressão regular
- Inclui um servidor MCP para integração com IA: extração de dados assistida por IA com Claude, Cursor etc.
- Antes de chamar a IA, o Scrapling seleciona o conteúdo-alvo para reduzir o uso de tokens e melhorar a velocidade
- Arquitetura de alto desempenho
- Oferece velocidade de processamento superior à maioria das bibliotecas de scraping em Python
- Execução leve com estrutura eficiente em memória e lazy loading
- Velocidade de serialização JSON 10x maior, 92% de cobertura de testes e type hints estáticos completos
- Já passou por validação em produção (battle-tested) em várias comunidades de web scraping
- Proporciona uma experiência amigável para desenvolvedores/web scrapers
- Inclui um Web Scraping Shell interativo: exploração em tempo real baseada em IPython e suporte à transformação de requisições
- Por meio de comandos CLI, é possível fazer scraping de URLs e extrair arquivos sem escrever código
- A API de navegação do DOM permite explorar relações entre pai/irmão/filho e oferece busca por elementos semelhantes
- Um gerador automático de seletores cria seletores CSS/XPath estáveis automaticamente
- API semelhante a Scrapy/BeautifulSoup: experiência familiar para usuários existentes
- Análise estática com PyRight/MyPy e build automático de imagens Docker também reforçam a praticidade de deploy
- Benchmark de desempenho
- O parser do Scrapling é ligeiramente mais rápido que Parsel/Scrapy e,
em comparação com BeautifulSoup4 (bs4), registra velocidade de processamento até mais de 700x maior
- O desempenho de busca por similaridade de elementos também alcança resultados mais de 5x mais rápidos que o AutoScraper
- Pode ser instalado com
pip install scrapling ou
é possível montar um ambiente de execução completo com navegador incluído usando a imagem Docker docker pull pyd4vinci/scrapling
- Licença BSD-3-Clause
3 comentários
Isso não gera problemas legais??? Eu vi dizerem que não havia problema em coletar informações online, mas...
Fico na dúvida se não haveria prejuízo em contornar algo que o site bloqueou para impedir crawling e ler mesmo assim.
Só o conteúdo acessado após login é que seria arriscado?
> with FetcherSession(impersonate='chrome') as session: # Use latest version of Chrome's TLS fingerprint
Interessante. Eu sempre pesquisava e inseria manualmente, mas é a primeira vez que vejo uma biblioteca assim. Parece bem prático.
Mas fico curioso sobre como exatamente isso contorna o Cloudflare. Acho que só olhando o código para entender.