[PYTHON] Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante

C'est une méthode pour écrire une fonction qui s'accroche au début et à la fin de spider.

Placez le contenu suivant directement sous le projet.

import scrapy

class SpiderHook(object):

    @classmethod
    def from_crawler(cls, crawler):
        ext = cls

        crawler.signals.connect(ext.spider_opened, signal=scrapy.signals.spider_opened)
        crawler.signals.connect(ext.spider_closed, signal=scrapy.signals.spider_closed)

        return ext

    def spider_opened(self, spider):
        #Traitement au début de l'araignée

    def spider_closed(self, spider):
        #Traitement à la fin de l'araignée

Ensuite, écrivez les paramètres pour charger cette classe dans settings.py.

EXTENSIONS = {
    '<project name>.<file name>. SpiderHook': 100,
}

référence: https://doc.scrapy.org/en/latest/topics/extensions.html

Recommended Posts

Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante
Spécifiez les positions de début et de fin des fichiers à inclure avec qiitap
Comment démarrer le PC à une heure fixe chaque matin et exécuter le programme python
Node.js: Comment tuer les descendants d'un processus démarré par child_process.fork ()
Comment diviser et traiter une trame de données à l'aide de la fonction groupby
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment mettre un numéro de ligne au début d'un fichier CSV
Essayez de ne faire réagir que le carbone en bout de chaîne avec SMARTS
Comment calculer la volatilité d'une marque
Envoyer Gmail à la fin du processus [Python]
Supprimer une chaîne spécifique à la fin de python
Comment assembler de nombreux pipelines et les ranger en même temps
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment créer un sous-menu avec le plug-in [Blender]
Tâches au démarrage d'un nouveau projet python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
[Ubuntu] Comment supprimer tout le contenu du répertoire
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
Comment démarrer un serveur WEB simple qui peut exécuter des cgi de php et python
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Pour extraire des données dans une colonne spécifique dans une feuille spécifique dans plusieurs fichiers Excel à la fois et mettre les données dans chaque colonne sur une ligne
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Une histoire sur la façon de traiter le problème CORS
Comment trouver le coefficient de mise à l'échelle d'une ondelette bipolaire
Créez un tableau à deux dimensions en ajoutant une ligne à la fin d'un tableau vide avec numpy
Comment traiter les images de caméra avec Teams et Zoom Volume de traitement dans le style d'animation
Comment tracer beaucoup de légendes en changeant la couleur du graphique en continu avec matplotlib
Une histoire sur le portage du code de "Essayez de comprendre comment fonctionne Linux" sur Rust
Comment démarrer la première projection
Comment connecter le contenu de la liste dans une chaîne de caractères
Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (5) Je souhaite envoyer une notification à la fin de l'expérience avec l'API slack
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
Traitez le fichier gzip UNLOADed avec Redshift avec Python de Lambda, gzipez-le à nouveau et téléchargez-le sur S3
Comment intercepter ou falsifier la communication SSL de l'appareil iOS réel par un proxy
Apprenez le flux de l'estimation bayésienne et comment utiliser Pystan grâce à un modèle de régression simple
[Python scraping] Affiche l'URL et le titre du site contenant un mot-clé spécifique dans un fichier texte
Comment définir un raccourci pour basculer entre pleine largeur et demi-largeur dans IBus
Comment démarrer par lots un programme Python créé avec le notebook Jupyter
Traitez le contenu du fichier dans l'ordre avec un script shell
Présentation de la création d'un socket serveur et de la création d'un socket client
Enregistrez le résultat de l'exploration avec Scrapy dans Google Data Store
[Python] Comment forcer une méthode d'une sous-classe à effectuer un processus spécifique
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[EC2] Comment installer Chrome et le contenu de chaque commande
Comment vérifier la taille de la mémoire d'une variable en Python
[Python] Comment obtenir le premier et le dernier jour du mois
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
J'ai essayé de résumer brièvement la procédure de démarrage du développement de Django