Maison  >  Article  >  développement back-end  >  Introduction et utilisation de Python Crawler-Scrapy

Introduction et utilisation de Python Crawler-Scrapy

angryTom
angryTomavant
2019-11-29 15:56:295216parcourir

Le processus de scrapy

Introduction et utilisation de Python Crawler-Scrapy

Le processus peut être décrit comme suit :

● Le planificateur gère les demandes--> ;Engine- ->Télécharger le middleware--->Téléchargeur

● Le téléchargeur envoie une requête et obtient une réponse---->Télécharger le middleware---->Engine---> Parties centrales du robot --->Crawler

● Le robot extrait l'adresse URL et l'assemble dans un objet de requête ---->Middleware Crawler--->Moteur--->Scheduler

● Le robot d'exploration extrait les données ---> Moteur ---> Pipeline

● Le pipeline traite et enregistre les données

Apprentissage recommandé : Tutoriel vidéo Python

Remarque :

Les lignes vertes sur l'image représentent le transfert de données

Faites attention à la position du middleware dans l'image, qui détermine son rôle

Faites attention à la position du moteur, tous les modules étaient auparavant indépendants les uns des autres et n'interagissaient qu'avec le moteur

Le rôle spécifique de chaque module dans scrapy

Introduction et utilisation de Python Crawler-Scrapy

1. projet scrapy Processus de mise en œuvre

Créer un projet scrapy : scrapy startproject Nom du projet

Générer un robot : scrapy genspider Le nom du robot permet d'explorer plage

pour extraire les données : Améliorez Spider, utilisez XPath et d'autres méthodes

Enregistrez les données : enregistrez les données dans le pipeline

Créer un projet Scrapy

Commande : scrapy startproject +< ;Nom du projet>

Exemple : scrapy startproject myspider

Les résultats du répertoire et du fichier générés sont les suivants :

Introduction et utilisation de Python Crawler-Scrapy

settings.py Champs clés et connotations

● USER_AGENT Définir ua

● ROBOTSTXT_OBEY S'il faut se conformer au protocole des robots, la valeur par défaut est de se conformer

● CONCURRENT_REQUESTS Définir le nombre de requêtes simultanées, la valeur par défaut est 16

● DOWNLOAD_DELAY Délai de téléchargement, pas de délai par défaut

● COOKIES_ENABLED Activer ou non les cookies, c'est-à-dire que chaque requête apporte la précédente cookie, la valeur par défaut est activée

● DEFAULT_REQUEST_HEADERS Définir l'en-tête de requête par défaut

● Middleware de robot d'exploration SPIDER_MIDDLEWARES, le processus de configuration est le même que celui du pipeline

● Middleware de téléchargement DOWNLOADER_MIDDLEWARES

Créer un robot

commande : scrapy genspider + +

Les résultats du répertoire et du fichier générés sont les suivants :

Introduction et utilisation de Python Crawler-Scrapy

Araignée parfaite

Araignée parfaite pour effectuer l'extraction de données et d'autres opérations via des méthodes :

Introduction et utilisation de Python Crawler-Scrapy

Remarque :

● Le résultat de retour de la réponse Liste de chaînes

● extract_first() renvoie la première chaîne de la liste. . Si la liste est vide, Aucun n'est renvoyé

● La méthode d'analyse dans spider doit avoir

● L'adresse URL qui doit être explorée doit appartenir à Allowed_domains, mais l'adresse URL dans start_urls n'a pas cette restriction

● Lors du démarrage du robot, faites attention à l'emplacement de départ. Démarrez-le dans le chemin du projet

Les données sont transmises au pipeline

Pourquoi utiliser le rendement ? Introduction et utilisation de Python Crawler-Scrapy

● Quels sont les avantages de transformer l'ensemble de la fonction en générateur ?

● Lors du parcours de la valeur de retour de cette fonction, lisez les données dans la mémoire une par une, ce qui n'entraînera pas une utilisation instantanée de la mémoire trop élevée

● La plage en python3 est le même que le xrange en python2

Remarque :

Les objets qui génèrent ne peuvent passer que : BaseItem, Request, dict, None

Améliorer le pipeline.

Introduction et utilisation de Python Crawler-Scrapy

Les pipelines peuvent être activés dans les paramètres. Pourquoi devez-vous activer plusieurs pipelines ? Introduction et utilisation de Python Crawler-Scrapy

● Différents pipelines peuvent traiter les données de différents robots d'exploration

● Différents pipelines peuvent effectuer différentes opérations de traitement de données, comme une pour le nettoyage des données et une pour la sauvegarde des données

Remarques sur l'utilisation du pipeline

● Vous devez l'activer dans les paramètres avant utilisation

● La clé dans le réglage du pipeline représente la position (c'est-à-dire que la position du pipeline dans le projet peut être personnalisée) et la valeur représente la distance du moteur. Plus les données sont proches, plus vite. les données passeront par

● Il existe plusieurs pipelines À ce stade, la méthode process_item doit renvoyer l'élément, sinon les données obtenues par ce dernier pipeline auront la valeur Aucune

● La méthode process_item dans le pipeline doit exister, sinon l'élément ne peut pas accepter et traiter

● process_item La méthode accepte l'élément et l'araignée, où l'araignée représente l'araignée qui passe actuellement l'élément

Cet article provient du python colonne tutoriel, bienvenue pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer