Tous les portail d'annuaire d'index des articles d'analyse de code source
[Scrapy Framework] Version 2.4.0 Code source: index de tous les répertoires de configuration
Répertoire d'articles
introduction
Ce document présente l'architecture de Scrapy et la manière dont ses composants interagissent.
Processus d'affaires
- Le moteur récupère l'araignée de la demande initiale.
- Le moteur planifie le planificateur de requêtes et demande la prochaine requête à analyser.
- Le plan renvoie le moteur pour la requête suivante.
- Le moteur envoie la demande au téléchargeur via le middleware du téléchargeur.
- Une fois la page téléchargée, le téléchargeur génère une réponse avec la page et l'envoie au moteur et via les middlewares de téléchargement.
- Le moteur reçoit la réponse du téléchargeur et l'envoie à l'araignée pour traitement, via le middleware d'araignée.
- L'araignée traite la réponse et renvoie les éléments récupérés et le nouveau moteur de demande (suivant) via le middleware d'araignée.
- Le moteur envoie les éléments traités au pipeline d'éléments, puis distribue les demandes traitées et demande de nouvelles demandes d'exploration.
- Répétez le processus (à partir de l'étape 1) jusqu'à ce qu'il n'y ait plus de demandes de planificateur.
Chaque composant
- Moteur Scrapy Le
moteur est chargé de contrôler le flux de données entre tous les composants du système et de déclencher des événements lorsque certaines opérations se produisent. - Le planificateur
reçoit les demandes du moteur et les met en file d'attente lorsque le moteur les demande, afin qu'elles puissent leur être fournies ultérieurement (également envoyées au moteur). - Le téléchargeur
est responsable de l'obtention des pages Web et de leur alimentation vers le moteur, qui à son tour les alimente à l'araignée. - Les
araignées Les araignées sont des éléments écrits par les utilisateurs de Scrapy pour analyser les réponses et extraire des classes personnalisées. - Pipeline d'articles
Une fois que l'araignée les a extraits (ou Scrapy), le pipeline d'articles est responsable du traitement de l'article. Les tâches typiques incluent le nettoyage, la vérification et la persistance (comme le stockage des éléments dans une base de données).
Si vous devez effectuer l'une des opérations suivantes, utilisez le middleware Downloader:
- Traitez la demande avant de l'envoyer au téléchargeur (c'est-à-dire avant que Scrapy envoie la demande au site Web);
- Modifiez la réponse reçue avant de la transmettre à l'araignée;
- Envoyez une nouvelle demande au lieu de transmettre la réponse reçue à l'araignée;
- Passez la réponse à l'araignée sans obtenir la page Web;
- Rejetez tranquillement certaines demandes.
- Les middlewares Spider
sont un hook spécifique entre le moteur et l'araignée, et peuvent gérer l'entrée (réponse) et la sortie (éléments et demandes) de l'araignée.
Si vous devez effectuer l'une des opérations suivantes, veuillez utiliser le middleware Spider
- Sortie de post-traitement de la demande ou de l'élément de modification / ajout / suppression de rappel de l'araignée;
- Post-traitement start_requests;
- Gestion des exceptions d'araignée;
- Selon le contenu de la réponse, errback est appelé au lieu de callback pour certaines requêtes.
Mise en réseau événementielle Scrapy est écrite en Twisted, une infrastructure de mise en réseau Python orientée événement populaire. Par conséquent, il est implémenté simultanément à l'aide de code asynchrone.