Présentation de Scrapy
Scrapy est un framework applicatif de haut niveau conçu pour le crawling web et l'extraction de données structurées. Extrêmement rapide et asynchrone, il est largement utilisé pour le data mining, le monitoring de sites et les tests automatisés.
Préparation de l'environnement Python
Les anciennes versions de Scrapy nécessitaient une installation manulele et complexe de multiples dépendances (Twisted, w3lib, libxml2, pyOpenSSL). Avec les versions modernes de Python 3, le gestionnaire de paquets pip résout et compile automatiquement ces dépendances. Il est impératif d'utiliser Python 3.8 ou une version ultérieure.
1. Création d'un environnement virtuel
Pour isoler les dépendances du projet et éviter les conflits avec les paquets système, créez un environnement virtuel dédié.
# Création de l'environnement virtuel
python -m venv env_scrapy
# Activation sous Windows
env_scrapy\Scripts\activate
# Activation sous macOS/Linux
source env_scrapy/bin/activate
2. Mise à jour des outils de build
Avant d'installer le framework, assurez-vous que les outils d'empaquetage sont à jour pour éviter les erreurs de compilation lors de l'installation des dépendances C (comme lxml ou cryptography).
python -m pip install --upgrade pip setuptools wheel
Installation de Scrapy et de ses dépendances
L'installation principale intègre automatiquement le moteur réseau asynchrone Twisted, la bibliothèque de parsing lxml (qui remplace avantageusement libxml2), ainsi que les modules de sécurité comme pyOpenSSL.
pip install scrapy
Note pour les utilisateurs Windows : Si l'installation de Twisted ou cryptography échoue à cause d'outils de compilation C++ manquants, il est possible d'installer les binaires précompilés via pip install twisted cryptography avant de relancer l'installation de Scrapy, ou d'installer les "Build Tools for Visual Studio".
Validation de l'installation
Pour confirmer que le framework et ses composants sont correctement intégrés dans votre environnement, exécutez les commandes de vérification suivantes.
Vérification de l'interface en ligne de commande
(env_scrapy) $ scrapy version
Scrapy 2.11.0 - no active project
Usage:
scrapy <command> [options] [args]
Available commands:
bench Run quick benchmark test
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
runspider Run a self-contained spider (without creating a project)
settings Get settings values
shell Interactive scraping console
startproject Create new project
version Print Scrapy version
view Open URL in browser, as seen by Scrapy
Vérification des modules Python
Ouvrez l'interpréteur interactif pour vous assurer que les modules sous-jacents se chargent sans erreur.
(env_scrapy) $ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scrapy
>>> import twisted
>>> import lxml
>>> import OpenSSL
>>> print(scrapy.__version__)
2.11.0
>>>