- Contourne la structure complexe du web moderne et les systèmes anti-bot tout en gérant aussi bien une requête unique que le crawling à grande échelle
- Intègre un parseur intelligent capable de relocaliser automatiquement les éléments lorsque la structure d’un site web change
- Intègre un module Fetcher capable de contourner nativement les principaux systèmes de sécurité comme Cloudflare Turnstile
- Prend en charge les fonctionnalités de crawling à grande échelle via le framework Spider : concurrence, gestion des sessions, pause/reprise, rotation de proxy, etc.
- API similaire à Scrapy : utilisation de
start_urls, de callbacks parse asynchrones et d’objets Request/Response
- Crawling concurrent et isolation des sessions : possibilité d’exécuter plusieurs sessions de navigateur en parallèle
- Fonction de pause et reprise basée sur des checkpoints : stable même pour les crawls de longue durée
- Mode de streaming en temps réel : permet de traiter immédiatement les données collectées ou de les refléter dans une interface
- Détecte automatiquement les requêtes bloquées et permet de les retenter avec une logique personnalisée
- Possibilité d’exporter les résultats vers son propre pipeline via des hooks (JSON/JSONL)
- Fetching avancé de sites web avec prise en charge des sessions
- La classe Fetcher prend en charge des fonctionnalités de requête avancées comme HTTP/3, l’usurpation d’empreinte TLS et le camouflage des en-têtes
- DynamicFetcher permet une automatisation de navigateur basée sur Playwright/Chrome
- StealthyFetcher contourne automatiquement les défenses anti-bot comme Cloudflare Turnstile
- ProxyRotator permet de changer de proxy à chaque requête et de contrôler le blocage par domaine
- Tous les Fetcher fonctionnent de manière asynchrone (async), avec des classes de session fournies (
FetcherSession, DynamicSession, etc.)
- Le scraping adaptatif (Adaptive Scraping) permet de relocaliser automatiquement les éléments même après des modifications du site web
- Algorithme de suivi d’éléments basé sur la similarité : permet une collecte de données robuste face aux changements de structure
- Prise en charge des sélecteurs CSS/XPath/texte/basés sur des expressions régulières
- Serveur MCP intégré pour l’intégration avec l’IA : extraction de données assistée par IA en lien avec Claude, Cursor, etc.
- Avant l’appel à l’IA, Scrapling sélectionne le contenu cible pour réduire l’usage de tokens et améliorer la vitesse
- Architecture haute performance
- Offre une vitesse de traitement supérieure à celle de la plupart des bibliothèques de scraping Python
- Exécution allégée grâce à une structure économe en mémoire et au lazy loading
- Vitesse de sérialisation JSON 10 fois plus rapide, 92 % de couverture de tests et prise en charge complète des indications de types statiques
- Déjà éprouvé en production par plusieurs communautés de web scraping
- Offre une expérience pensée pour les développeurs et les web scrapers
- Shell interactif de web scraping intégré : exploration en temps réel basée sur IPython et prise en charge de la transformation des requêtes
- Les commandes CLI permettent de scraper des URL et d’extraire des fichiers sans écrire de code
- L’API d’exploration du DOM permet de naviguer entre parents/frères-enfants et propose aussi une recherche d’éléments similaires
- Générateur automatique de sélecteurs pour créer automatiquement des sélecteurs CSS/XPath robustes
- API similaire à Scrapy/BeautifulSoup : expérience de développement familière pour les utilisateurs existants
- Déploiement facilité grâce à l’analyse statique basée sur PyRight/MyPy et à la construction automatique d’images Docker
- Benchmarks de performance
- Le parseur de Scrapling est légèrement plus rapide que Parsel/Scrapy,
et enregistre une vitesse de traitement jusqu’à plus de 700 fois supérieure à BeautifulSoup4 (bs4)
- Les performances de recherche par similarité d’éléments sont également plus de 5 fois supérieures à celles d’AutoScraper
- Installation via
pip install scrapling
ou environnement d’exécution complet avec navigateur inclus grâce à l’image Docker : docker pull pyd4vinci/scrapling
- Licence BSD-3-Clause
Aucun commentaire pour le moment.