Sobre o projeto

Scrapling é uma estrutura adaptativa de web scraping para Python que cobre desde requisições de página única até rastreamentos concorrentes em larga escala. É projetada para desenvolvedores e web scrapers que precisam de extração de dados resiliente sem reescrever constantemente os seletores quando os sites mudam. As capacidades principais incluem: - Análise adaptativa: o parser lembra as localizações dos elementos e pode realocá-los após redesigns do site usando correspondência baseada em similaridade, com opções como adaptive=True ou auto_save=True para seleção CSS resiliente. - Fetchers flexíveis: fetchers HTTP que podem imitar impressões digitais TLS e cabeçalhos de navegadores, fetchers de automação de navegador para páginas dinâmicas e um fetcher furtivo voltado a contornar sistemas anti-bot comuns, como o Cloudflare Turnstile. Todos os fetchers oferecem variantes assíncronas e classes de sessão persistentes. - Estrutura completa de spider: uma API semelhante ao Scrapy com start_urls, callbacks de parse assíncronos, rastreamento concorrente, limitação por domínio, checkpoints de pausa/retomada, saída de itens em streaming, detecção de requisições bloqueadas, limitação automática, suporte a robots.txt e um modo de desenvolvimento que reproduz respostas em cache. - Gerenciamento de proxies e sessões: rotação de proxies integrada, substituições de proxy por requisição, prevenção de vazamento de DNS via DNS-over-HTTPS e conexão opcional a navegadores remotos via CDP. - Integrações de IA e agentes: um servidor MCP permite que assistentes de IA façam scraping via buscas HTTP, dinâmicas ou furtivas, com prompts removidos das páginas para reduzir o risco de injeção; uma habilidade de agente ajuda agentes de codificação a usar a API atual; e page.markdown() produz Markdown limpo pronto para LLM/RAG sem um LLM no loop. - Experiência do desenvolvedor: um shell interativo baseado em IPython, scraping via CLI sem código, navegação rica no DOM, geração automática de seletores, exportação integrada em JSON/JSONL/CSV/XML e integração direta com callbacks do Scrapy. O projeto mantém dicas de tipo completas, verificação automatizada de tipos, uma imagem Docker com todos os navegadores e cobertura de testes em toda a biblioteca.