J'ai récemment appris Python, et j'apprends également à utiliser Python pour explorer des données, j'ai donc découvert le très populaire framework d'exploration Python Scrapy. Apprenons l'architecture de Scrapy pour mieux utiliser cet outil.
1. Présentation
La figure suivante montre l'architecture générale de Scrapy, qui comprend ses principaux composants et le processus de traitement des données du système (le vert la flèche indique Afficher). Expliquons le rôle de chaque composant et le processus de traitement des données un par un.
2. Composants
1. 🎜>Le moteur Scrapy est utilisé pour contrôler le processus de traitement des données de l'ensemble du système et déclencher le traitement des transactions. Pour plus de détails, veuillez consulter le processus de traitement des données ci-dessous.
2. Planificateur (Planification)
Le planificateur accepte les demandes du moteur Scrapy et les trie dans la file d'attente, et après le moteur Scrapy. émet la demande. Renvoyez-la-leur.
3. Téléchargeur
La principale responsabilité du téléchargeur est d'explorer les pages Web et de renvoyer le contenu Web aux araignées (Spiders).
4. Spiders
Les Spiders sont définis par les utilisateurs de Scrapy eux-mêmes pour analyser les pages Web et explorer le contenu renvoyé par la classe d'URL spécifiée. chaque araignée peut gérer un nom de domaine ou un groupe de noms de domaine. En d’autres termes, il est utilisé pour définir les règles d’exploration et d’analyse d’un site Web spécifique. L'ensemble du processus d'exploration (cycle) de l'araignée est le suivant :
1). Récupérez d'abord la requête initiale de la première URL et appelez une fonction de rappel lorsque la requête revient. La première requête est effectuée en appelant la méthode start_requests(). Cette méthode génère des requêtes à partir de l'URL dans start_urls par défaut et effectue une analyse pour appeler la fonction de rappel.
2).Dans la fonction de rappel, vous pouvez analyser la réponse de la page Web et renvoyer une itération de l'objet élément, de l'objet requête ou des deux. Ces demandes incluront également un rappel, puis seront téléchargées par Scrapy puis traitées avec le rappel spécifié.3). Dans la fonction de rappel, vous analysez le contenu du site Web, à l'aide du sélecteur Xpath (mais vous pouvez également utiliser BeautifuSoup, lxml ou tout autre programme de votre choix), et générez des éléments de données analysés.
4). Enfin, les projets renvoyés par les araignées vont généralement dans le pipeline de projets.
5. Pipeline d'éléments
La principale responsabilité du pipeline de projets est de gérer les éléments extraits de la page Web par les araignées. . projet, sa tâche principale est de clarifier, vérifier et stocker les données. Lorsque la page est analysée par le spider, elle sera envoyée au pipeline du projet et les données seront traitées à travers plusieurs séquences spécifiques. Les composants de chaque pipeline de projet sont des classes Python avec une méthode simple. Ils acquièrent le projet et exécutent leur approche, mais ils doivent également déterminer s'ils doivent passer à l'étape suivante du pipeline de projets ou l'abandonner sans traitement. Les processus habituellement effectués par le pipeline de projet sont :
1). Nettoyer les données HTML
2) Vérifier les données analysées (vérifier si le projet contient les champs nécessaires). 3 ). Vérifiez s'il s'agit de données en double (supprimez si elles sont dupliquées)
4). Stockez les données analysées dans la base de données
6. >
Le middleware de téléchargement est un framework de hook situé entre le moteur Scrapy et le téléchargeur. Il gère principalement les requêtes et les réponses entre le moteur Scrapy et le téléchargeur. Il fournit un moyen de code personnalisé pour étendre les fonctionnalités de Scrapy. Le courtier de téléchargement est un framework de hook qui gère les demandes et les réponses. Il s'agit d'un système léger de bas niveau qui bénéficie d'un contrôle global sur Scrapy.
7. Middlewares Spider (Spider middleware)Le middleware Spider est un framework de hook entre le moteur Scrapy et les araignées, principalement le travail consiste à traiter l'entrée de réponse de l'araignée et la sortie de la demande. Il fournit un moyen d'étendre les fonctionnalités de Scrapy avec du code personnalisé. Le middleware Spider est un cadre qui s'intègre au mécanisme de traitement des araignées de Scrapy. Vous pouvez insérer du code personnalisé pour gérer les requêtes envoyées aux araignées et renvoyer le contenu des réponses et les éléments obtenus par les araignées.
8. Middlewares de planification (Middleware de planification)Le middleware de planification est le middleware entre le moteur Scrapy et la planification, principalement le travail est effectué par envoi. requêtes et réponses du moteur Scrapy au planificateur. Il fournit un code personnalisé pour étendre les fonctionnalités de Scrapy. 3. Processus de traitement des données
L'ensemble du processus de traitement des données de Scrapy est contrôlé par le moteur Scrapy, et sa principale méthode de fonctionnement est :Le moteur ouvre un nom de domaine, et l'araignée traite le nom de domaine et permet à l'araignée d'obtenir la première URL explorée.
Le moteur obtient la première URL qui doit être explorée à partir du spider, puis la planifie sous forme de requête dans le planificateur.
Le moteur obtient la page suivante à explorer à partir du planificateur.
Le planificateur renvoie la prochaine URL explorée au moteur, et le moteur les envoie au téléchargeur via le middleware de téléchargement.
Lorsque la page Web est téléchargée par le téléchargeur, le contenu de la réponse est envoyé au moteur via le middleware de téléchargement.
Le moteur reçoit la réponse du téléchargeur et l'envoie au spider via le middleware spider pour traitement.
L'araignée traite la réponse et renvoie les éléments explorés, puis envoie une nouvelle requête au moteur.
Le moteur capturera le pipeline du projet et enverra une requête au planificateur.
Le système répète les opérations suivant la deuxième étape jusqu'à ce qu'il n'y ait plus de requêtes dans le planning, puis déconnecte le moteur du domaine.
4. Pilote
Scrapy est un framework réseau basé sur les événements Python populaire écrit par Twisted.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, et j'espère également que tout le monde s'abonnera au site Web PHP chinois.
Pour plus d'articles liés à l'architecture de Scrapy, le framework d'exploration Python, veuillez faire attention au site Web PHP chinois !