Tutoriel Scrapy: Comment faire un Web-Crawler à l'aide de Scrapy?



Dans cet article du didacticiel Scrapy, vous apprendrez à créer un robot d'exploration Web avec diverses techniques d'extraction de données et des moyens de stocker les données dans une base de données.

Le scraping Web est un moyen efficace de collecter des données à partir des pages Web, il est devenu un outil efficace pour . Avec divers bibliothèques présent pour le scraping Web comme , le travail d’un data scientist devient optimal. Scrapy est un puissant framework Web utilisé pour extraire, traiter et stocker des données. Nous allons apprendre comment créer un robot d'exploration Web dans ce didacticiel de scrapy, en suivant les sujets abordés dans ce blog:

Qu'est-ce que Scrapy?

Scrapy est un framework d'exploration Web gratuit et open-source écrit en python. Il a été conçu à l'origine pour effectuer , mais peut également être utilisé pour extraire des données à l'aide d'API. Il est maintenu par Scrapinghub ltd.





Scrapy est un package complet lorsqu'il s'agit de télécharger les pages Web, de traiter et de stocker les données sur le .

C'est comme une centrale électrique en matière de scraping Web avec plusieurs façons de gratter un site Web. Scrapy gère facilement des tâches plus importantes, grattant plusieurs pages ou un groupe d'URL en moins d'une minute. Il utilise un twister qui fonctionne de manière asynchrone pour obtenir la concurrence.



Il fournit des contrats d'araignée qui nous permettent de créer des robots d'exploration génériques et profonds. Scrapy fournit également des pipelines d'éléments pour créer des fonctions dans une araignée qui peuvent effectuer diverses opérations telles que le remplacement de valeurs dans les données, etc.

architecture scrapy-tutoriel scrapy-edureka

Qu'est-ce qu'un Web-Crawler?

Un robot d'exploration Web est un programme qui recherche automatiquement des documents sur le Web. Ils sont principalement programmés pour une action répétitive pour une navigation automatisée.

Comment ça fonctionne?



Un robot d'exploration Web est assez similaire à un bibliothécaire. Il recherche les informations sur le Web, classe les informations, puis indexe et catalogue les informations pour que les informations explorées soient récupérées et stockées en conséquence.

Les opérations qui seront effectuées par le robot d'exploration sont créées au préalable, puis le robot effectue automatiquement toutes ces opérations qui créeront un index. Ces index sont accessibles par un logiciel de sortie.

Jetons un coup d'œil à diverses applications pour lesquelles un robot d'exploration Web peut être utilisé:

  • Les portails de comparaison de prix recherchent des détails spécifiques sur les produits pour comparer les prix sur différentes plates-formes à l'aide d'un robot d'exploration Web.

  • Un web-crawler joue un rôle très important dans le domaine de l'exploration de données pour la recherche d'informations.

  • Les outils d'analyse de données utilisent des robots d'exploration Web pour calculer les données des pages vues, ainsi que des liens entrants et sortants.

  • Les robots d'exploration servent également aux centres d'informations pour collecter des données telles que les portails d'actualités.

Comment installer Scrapy?

Pour installer scrapy sur votre système, il est recommandé de l'installer sur un virtualenv dédié. L'installation fonctionne à peu près de la même manière que tout autre package en python, si vous utilisez conda environnement, utilisez la commande suivante pour installer scrapy:

conda installer -c conda-forge scrapy

vous pouvez également utiliser l'environnement pip pour installer scrapy,

pip installer scrapy

Il peut y avoir quelques dépendances de compilation en fonction de votre système d'exploitation. Scrapy est écrit en python pur et peut dépendre de quelques packages python comme:

  • lxml - C'est un analyseur XML et HTML efficace.

  • parcel - Une bibliothèque d'extraction HTML / XML écrite en haut sur lxml

  • W3lib - C'est une aide polyvalente pour traiter les URL et les encodages de pages Web

  • twisted - Un cadre de réseau asynchrone

  • cryptographie - Il aide à répondre à divers besoins de sécurité au niveau du réseau

Démarrer votre premier projet Scrapy

Pour démarrer votre premier projet scrapy, accédez au répertoire ou à l'emplacement où vous souhaitez enregistrer vos fichiers et exécutez la commande suivante

scrapy startproject nom du projet

Après avoir exécuté cette commande, vous obtiendrez les répertoires suivants créés à cet emplacement.

  • nom du projet/

    • scrapy.cfg: il déploie le fichier de configuration

  • nom du projet/

  • araignées/

    • __init__.py: un répertoire où plus tard vous mettrez vos araignées

Faire votre première araignée

Les araignées sont des classes que nous définissons et que nous utilisons pour collecter des informations sur le Web. Vous devez sous-classer scrapy.Spider et définir les requêtes initiales à effectuer.

Vous écrivez le code de votre spider dans un fichier python séparé et l'enregistrez dans le répertoire projectname / spiders de votre projet.

quotes_spider.py

importez la classe de scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] pour l'url dans les urls: yield scrapy.Request (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'quotes-% s.html'% page avec open (filename, 'wb') comme f: f.write (response.body) self.log ('fichier enregistré% s'% filename)

Comme vous pouvez le voir, nous avons défini diverses fonctions dans nos araignées,

  • name: Il identifie l'araignée, il doit être unique tout au long du projet.

  • start_requests (): Doit retourner un itérable de requêtes avec lesquelles l'araignée commencera à explorer.

  • parse (): C'est une méthode qui sera appelée pour gérer la réponse téléchargée à chaque requête.

Extraction de données

Jusqu'à présent, l'araignée n'extrait aucune donnée, elle a juste enregistré le fichier HTML entier. Une araignée scrapy génère généralement de nombreux dictionnaires contenant les données extraites de la page. Nous utilisons le mot-clé yield en python dans le callback pour extraire les données.

importation de la classe scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): pour quote dans response.css ('div.quote'): yield {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Lorsque vous exécutez cette araignée, il produira les données extraites avec le journal.

Stockage des données

Le moyen le plus simple de stocker les données extraites consiste à utiliser les exportations de flux, utilisez la commande suivante pour stocker vos données.

citations de scrapy crawl -o quotes.json

Cette commande générera un fichier quotes.json contenant tous les éléments récupérés, sérialisés en JSON .

Cela nous amène à la fin de cet article où nous avons appris comment créer un robot d'exploration en utilisant scrapy en python pour gratter un site Web et extraire les données dans un fichier JSON. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

Si vous avez trouvé cet article sur 'Scrapy Tutorial' pertinent, consultez le une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.

Nous sommes là pour vous aider à chaque étape de votre voyage et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir . Le cours est conçu pour vous donner une longueur d'avance dans la programmation Python et vous former aux concepts Python de base et avancés ainsi que divers comme

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires du «Tutoriel Scrapy» et notre équipe se fera un plaisir de vous répondre.