À propos du projet
Scrapling est un framework de scraping web adaptatif pour Python qui couvre tout, des requêtes sur une seule page aux crawls concurrents à grande échelle. Il est conçu pour les développeurs et les spécialistes du scraping web qui ont besoin d'une extraction de données résiliente sans réécrire constamment les sélecteurs lorsque les sites changent.
Les capacités principales incluent :
- Analyse adaptative : le parseur mémorise l'emplacement des éléments et peut les relocaliser après une refonte du site grâce à une correspondance basée sur la similarité, avec des options telles que adaptive=True ou auto_save=True pour une sélection CSS résiliente.
- Fetchers flexibles : des fetchers HTTP capables d'imiter les empreintes TLS et les en-têtes des navigateurs, des fetchers d'automatisation de navigateur pour les pages dynamiques, et un fetcher furtif visant à contourner les systèmes anti-bot courants tels que Cloudflare Turnstile. Tous les fetchers offrent des variantes asynchrones et des classes de session persistantes.
- Framework de spider complet : une API de type Scrapy avec start_urls, callbacks parse asynchrones, crawling concurrent, limitation par domaine, points de contrôle pause/reprise, sortie d'items en streaming, détection des requêtes bloquées, limitation automatique, prise en charge de robots.txt, et un mode développement qui rejoue les réponses mises en cache.
- Gestion des proxys et des sessions : rotation de proxys intégrée, remplacements de proxy par requête, prévention des fuites DNS via DNS-over-HTTPS, et connexion optionnelle à des navigateurs distants via CDP.
- Intégrations IA et agents : un serveur MCP permet aux assistants IA de scraper via des fetchers HTTP, dynamiques ou furtifs, avec les prompts retirés des pages pour réduire le risque d'injection ; une compétence d'agent aide les agents de codage à utiliser l'API actuelle ; et page.markdown() produit du Markdown propre prêt pour LLM/RAG sans LLM dans la boucle.
- Expérience développeur : un shell interactif basé sur IPython, du scraping en CLI sans code, une navigation DOM riche, la génération automatique de sélecteurs, l'export intégré en JSON/JSONL/CSV/XML, et une intégration directe avec les callbacks Scrapy.
Le projet maintient des annotations de type complètes, une vérification de type automatisée, une image Docker avec tous les navigateurs, et une couverture de tests sur l'ensemble de la bibliothèque.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.