Maison >développement back-end >Tutoriel Python >Qu'est-ce que le puissant framework de robots d'exploration Scrapy ?

Qu'est-ce que le puissant framework de robots d'exploration Scrapy ?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼avant
2019-06-05 18:02:554194parcourir

Le robot d'exploration Web est un programme ou un script qui explore automatiquement les informations sur le World Wide Web selon certaines règles. Ils sont largement utilisés dans les moteurs de recherche Internet ou d'autres sites Web similaires et peuvent collecter automatiquement toutes les informations auxquelles ils peuvent accéder. le contenu de ces sites. Scrapy est un framework de robots d'exploration très puissant, et il est écrit en python. Jetons un coup d'oeil à ce qu'est Scrapy ?

Quest-ce que le puissant framework de robots dexploration Scrapy ?

1 Connaissance requise

La connaissance requise est : Système Linux. + Langage Python + Framework Scrapy + XPath (langage de chemin XML) + quelques outils auxiliaires (outils de développement de navigateur et plug-ins d'assistance XPath).

Notre robot d'exploration est développé à l'aide du framework Scrapy crawler en langage Python et fonctionne sous Linux, vous devez donc maîtriser le langage Python, le framework Scrapy et une connaissance de base du système d'exploitation Linux.

Nous devons utiliser XPath pour extraire ce que nous voulons de la page HTML cible, y compris les paragraphes de texte chinois et les liens « page suivante », etc.

Les outils de développement de navigateurs sont les principaux outils auxiliaires pour l'écriture de robots d'exploration. Utilisez cet outil pour analyser le modèle des liens de page, localiser les éléments que vous souhaitez extraire dans la page HTML, puis extraire son expression XPath pour l'utiliser dans le code du robot. Vous pouvez également afficher le référent, le cookie et d'autres informations dans la page. en-tête de requête. Si la cible explorée est un site Web dynamique, l'outil peut également analyser les requêtes JavaScript qui se cachent derrière celui-ci.

Le plug-in d'assistance XPath est un plug-in pour Chrome, et il peut également être installé sur les navigateurs basés sur le noyau Chrome. L'assistant XPath peut être utilisé pour déboguer les expressions XPath.

2. Configuration de l'environnement

Pour installer Scrapy, vous pouvez utiliser la commande pip : pip install Scrapy

Scrapy a de nombreuses dépendances associées, il peut être difficile pendant le processus d'installation. J'ai rencontré le problème suivant :

ImportError : aucun module nommé w3lib.http

Solution : pip install w3lib

ImportError : aucun module nommé twisted

Solution : pip install twisted

ImportError : Aucun module nommé lxml.HTML

Solution : pip install lxml

erreur : libxml/xmlversion.h : Non tel fichier ou répertoire

Solution : apt-get install libxml2-dev libxslt-dev

apt-get install Python-lxml

ImportError : aucun module nommé cssselect

Solution : p ip install cssselect

ImportError : Aucun module nommé OpenSSL

Solution : pip install pyOpenSSL

Suggestion :

Utilisez la méthode simple : installez avec anaconda.

3. Framework Scrapy

1. Introduction à Scrapy

Scrapy est un célèbre framework de robots, écrit en Python . Scrapy peut facilement effectuer du web scraping et peut également être facilement personnalisé en fonction de vos propres besoins.

La structure globale de Scrapy est à peu près la suivante :

Qu'est-ce que le puissant framework de robots d'exploration Scrapy ?

2.

Scrapy comprend principalement les composants suivants :

Le moteur (Scrapy)

est utilisé pour traiter le flux de données de l'ensemble du système et déclencher des transactions (noyau du framework).

Scheduler (Scheduler)

est utilisé pour accepter les demandes du moteur, les placer dans la file d'attente et revenir lorsque le moteur le demande à nouveau. a La file d'attente prioritaire de l'URL (l'URL ou le lien de la page Web analysée), qui détermine la prochaine URL à explorer et supprime les URL en double.

Téléchargeur (Téléchargeur)

est utilisé pour télécharger du contenu Web et renvoyer le contenu Web à l'araignée (le téléchargeur Scrapy est construit sur Twisted, un modèle asynchrone efficace de) .

Spiders

Les robots d'exploration sont principalement utilisés pour extraire les informations dont ils ont besoin à partir de pages Web spécifiques, qui sont ce qu'on appelle des entités (Items). Les utilisateurs peuvent également en extraire des liens et laisser Scrapy continuer à explorer la page suivante.

Project Pipeline (Pipeline)

est responsable du traitement des entités extraites des pages Web par les robots d'exploration. Ses principales fonctions sont de conserver les entités, de vérifier la validité des entités et. supprimer les informations inutiles. Lorsque la page est analysée par le robot, elle sera envoyée au pipeline du projet et les données seront traitées via plusieurs séquences spécifiques.

Middlewares de téléchargement

Un framework situé entre le moteur Scrapy et le téléchargeur. Il gère principalement les requêtes et les requêtes entre le moteur Scrapy et la réponse du téléchargeur.

Spider Middlewares

Un framework entre le moteur Scrapy et le robot d'exploration. Sa tâche principale est de traiter l'entrée de réponse et la sortie de requête de l'araignée.

Intermédiaires de planification

Middleware entre le moteur Scrapy et le planificateur, envoyant des requêtes et des réponses du moteur Scrapy au planificateur.

Processus en cours d'exécution Scrapy :

1. Le moteur extrait un lien (URL) du planificateur pour une exploration ultérieure

2. l'URL dans une requête (Request) et la transmet au téléchargeur

3 Le téléchargeur télécharge la ressource et l'encapsule dans un package de réponse (Response)

4.

5. Si l'entité (Item) est analysée, remettez-la au pipeline d'entités pour un traitement ultérieur

6 Si le lien (URL) est analysé, remettez l'URL au planificateur. attendre l'exploration

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
Article précédent:python définir la fonctionArticle suivant:python définir la fonction