Shot-scraper est un utilitaire en ligne de commande puissant, basé sur le moteur Playwright, conçu pour automatiser la capture d'écran de pages web. Que vous soyez développeur, responsable de documentation ou analyste de données, cet outil permet de s'affranchir des tâches répétitives de capture manuelle en offrant une précision de rendu exceptionnelle et une flexibilité totale via script.
Prérequis système
Avant de procéder à l'installation, assurez-vous que votre environnement dispose des éléments suivants :
- Python : Version 3.7 ou supérieure (3.9+ recommandée).
- Pip : Gestionnaire de paquets mis à jour.
- Espace disque : Environ 500 Mo pour les binaires des navigateurs.
Installation rapide via Pip
La méthode la plus simple pour installer Shot-scraper consiste à utiliser le dépôt officiel PyPI. Exécutez la commande suivante dans votre terminal :
pip install shot-scraper
Une fois l'installation du paquet terminée, vous devez configurer les moteurs de rendu (navigateurs sans interface graphique) via Playwright :
shot-scraper install
Par défaut, cette commande installe Chromium. Si vous avez besoin de tester la compatibilité sur d'autres moteurs, vous pouvez spécifier des navigateurs additionnels :
# Installer Firefox et WebKit (Safari)
shot-scraper install -b firefox -b webkit
Installation pour le développement (Sources)
Si vous souhaitez modifier le code source ou tester des fonctionnalités expérimentales, installez l'outil directement depuis son dépôt :
git clone https://github.com/simonw/shot-scraper.git
cd shot-scraper
pip install -e .
Utilisation fondamentale
L'outil est conçu pour être intuitif. Voici quelques exemples de commandes courantes pour démarrer immédiatement.
1. Capture simple d'une URL
Pour capturer une vue standard d'un site web (format 1280x720 par défaut) :
shot-scraper https://www.wikipedia.org -o wikipedia.png
2. Capture de la page entière
Pour ignorer la zone de visualisation et capturer toute la hauteur de la page :
shot-scraper https://github.com --full-page -o github-complet.png
3. Ciblage d'un élément spécifique
Shot-scraper permet de n'isoler qu'une partie de la page grâce aux sélecteurs CSS :
shot-scraper https://news.ycombinator.com --selector ".hnname" -o logo-hn.png
4. Gestion du contenu dynamique
Pour les sites utilisant beaucoup de JavaScript, il est souvent nécessaire d'attendre la fin des animations ou du chargement des données :
shot-scraper https://www.apple.com --wait 2500
Résolution des problèmes fréquents
Voici comment traiter les erreurs de configuraton les plus usuelles :
- Commande introuvable : Assurez-vous que le répertoire des scripts Python est bien présent dans votre variable d'environnement
PATH. - Échec du téléchargement du navigateur : Si vous êtes derrière un proxy, configurez les variables
HTTP_PROXYetHTTPS_PROXYavant de lancershot-scraper install. - Dépendances Linux manquantes : Sur Ubuntu/Debian, il peut être nécessaire d'installer les bibliothèques système via
playwright install-deps.
Automatisation avec GitHub Actions
L'un des plus grands atouts de Shot-scraper est son intégration facile dans les pipelines CI/CD. Voici un exemple de workflow pour automatiser une capture quotidienne :
name: Screenshot Automation
on:
schedule:
- cron: '0 0 * * *' # Exécution à minuit
jobs:
capture:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Tooling
run: |
pip install shot-scraper
shot-scraper install
- name: Run Capture
run: shot-scraper https://example.com -o daily-shot.png
- name: Upload Image
uses: actions/upload-artifact@v3
with:
name: web-captures
path: daily-shot.png
Aller plus loin
Shot-scraper ne se limite pas aux images. Vous pouvez également générer des fichiers PDF de haute qualité en remplaçant simplement l'extension ou en utilisant la sous-commande dédiée :
shot-scraper pdf https://www.google.com -o recherche.pdf
Pour découvrir l'ensemble des paramètres (authentification par cookies, injection de JavaScript personnalisé, gestion du mode sombre), consultez l'aide intégrée via shot-scraper --help.