L'exploration Web, également appelée araignée Web ou grattage d'écran, les développeurs de logiciels définissez-le comme « l’écriture d’un logiciel pour itérer sur un ensemble de pages Web pour en extraire du contenu », c’est un excellent outil pour extraire des données du Web pour diverses raisons.
L'utilisation d'un robot d'exploration de pages Web, vous pouvez explorer et extraire des données à partir d'un ensemble d'articles, exploiter un grand article de blog ou extraire des données quantitatives d'Amazon pour la surveillance des prix et l'apprentissage automatique, surmonter l'incapacité d'obtenir du contenu à partir de sites qui n'ont pas d'API officielle, ou simplement pour créer votre propre prototype pour le prochain meilleur Web.
Dans ce tutoriel, nous vous apprendrons les bases de l'utilisation de Crawlbase et Scrapy pour explorer et extraire des pages Web. À titre d'exemple, nous utiliserons les pages de résultats de recherche Amazon pour extraire les URL et les titres ASIN des produits. Une fois ce tutoriel terminé, vous disposerez, nous l'espérons, d'un scraper Web entièrement fonctionnel qui parcourt une série de pages sur Amazon, extrait les données de chaque page et les imprime sur votre écran.
L'exemple de scraper peut être facilement étendu et utilisé comme une couche solide pour vos projets personnels sur l'exploration et le scraping de données à partir du Web.
Objectifs du blog :
- Obtenez un savoir-faire sur le framework Scrapy, ses fonctionnalités, son architecture et ses opérations.
- Apprenez à créer votre propre Grattoir Amazon dans Python Scrapy en utilisant Crawlbase.
- Apprenez les bases de l’extraction des pages de produits Amazon à partir des pages de résultats de recherche Amazon.
Pré-requis
Pour réussir ce tutoriel, vous aurez besoin d'une API Crawlbase jeton gratuit pour récupérer des pages Web de manière anonyme et Python 3 installé sur votre machine locale pour le développement.
Étape 1 — Création du scraper Amazon Basic
Scrapy est une bibliothèque de scraping Python ; elle comprend la plupart des outils courants qui nous aideront lors du scraping. Elle accélère le processus de scraping et est maintenue par une communauté open source qui aime scraper et explorer le Web.
Crawlbase dispose d'une bibliothèque de scraping Python ; associée à scrapy, nous garantissons que notre crawler fonctionne de manière anonyme à grande échelle sans être bloqué par des sites. L'API Crawlbase est une couche mince puissante qui agit au-dessus de n'importe quel site comme un middleware mince.
Crawlbase et Scrapy ont des packages Python sur PyPI (connus sous le nom de pip). PyPI, le gestionnaire de packages Python, est maintenu par la communauté Python en tant que référentiel pour diverses bibliothèques dont les développeurs ont besoin.
Installez Crawlbase et Scrapy avec les commandes suivantes :
1 | pip installe crawlbase |
1 | pip installer scrapy |
Créez un nouveau dossier pour le scraper :
1 | mkdir grattoir amazon |
Accédez au répertoire du scraper que vous avez créé ci-dessus :
1 | cd amazon-grattoir |
Créez un fichier Python pour votre scraper. Tout le code de ce tutoriel sera placé dans ce fichier. Nous utilisons la commande Touch dans la console pour ce tutoriel, vous pouvez utiliser n'importe quel autre éditeur de votre choix.
1 | toucher myspider.py |
Créons notre première araignée scrapy basique AmazonSpider
qui hérite de scrapy.Spider
. Selon la documentation scrapy, les sous-classes ont 2 attributs obligatoires. name
qui est un nom pour notre araignée et une liste d'URL start_urls
, nous utiliserons une URL pour cet exemple. Nous importons également l'API Crawlbase. Elle nous permet de créer des URL qui passeront par l'API Crawlbase au lieu des sites d'origine. Cela évite les blocages et les pages captcha.
Collez le code suivant dans myspider.py
1 | importer tremblant |
Exécutez le scraper qui n'extrait pas encore de données, mais vous devriez le faire pointer vers le point de terminaison de l'API Crawlbase et obtenir Crawled 200
de Scrapy.
1 | araignée de course scrapy myspider.py |
Le résultat devrait ressembler à ceci, notez que la demande à la page de résultats d'Amazon via Crawlbase est passée avec le code de réponse 200.
1 | 2018-07-09 02:05:23 [scrapy.utils.log] INFO : Scrapy 1.5.0 démarré (bot : scrapybot) |
Comme nous n'avons pas encore écrit l'analyseur, le code a simplement chargé le start_urls
qui n'est qu'une URL vers les résultats de recherche Amazon via l'API Crawlbase et renvoie le résultat à l'analyseur par défaut qui ne fait rien par défaut. Il est maintenant temps de passer à l'étape suivante et d'écrire notre analyseur simple pour extraire les données dont nous avons besoin.
Étape 2 – Récupération des URL et des titres ASIN d'Amazon
Mettons en valeur la myspider
classe avec un analyseur simple qui extrait les URL et les titres de tous les produits ASIN sur la page de résultats de recherche. Pour cela, nous devons savoir quels sélecteurs CSS nous devons utiliser pour demander à Scrapy de récupérer les données de ces balises. Au moment de la rédaction de ce tutoriel, les URL ASIN se trouvent dans le .a-link-normal
sélecteur css
L'amélioration de notre classe spider avec notre analyseur simple nous donnera le code suivant :
1 | importer tremblant |
L'exécution de scrapy à nouveau devrait nous imprimer de belles URL de pages ASIN et leurs titres. 😄
1 |
|
L'architecture du framework Web Scrapy de Python
Scrapy Web Scraper est considéré comme un framework d'exploration Web robuste et open source soigneusement créé en Python.
Grattoirs Web et les développeurs adorent Scrapy. Il les guide dans l'extraction et le scraping de données à partir de sites Web avec une efficacité inégalée.
Lorsqu'un projet est lancé, plusieurs fichiers entrent en jeu pour interagir avec les principaux composants de Scrapy. L'observation du framework Scrapy montre que son cœur est le moteur. Le moteur gère quatre parties clés :
- Spiders
- Pipelines d'articles
- Le téléchargeur
- Le planificateur
Divisons leur fonctionnement en étapes simples :
- Dans la phase initiale du scraping Web Scrapy, la communication est facilitée par les Spiders. Ces Spiders agissent comme des classes qui définissent diverses méthodes de scraping. Les utilisateurs invoquent ces méthodes. Elles permettent au scraper Web Scrapy d'envoyer des requêtes au moteur. Les requêtes incluent les URL à scraper et les informations souhaitées pour l'extraction. Le moteur Scrapy est crucial. Il contrôle le flux de données et déclenche des événements clés dans le scraping. Il sert de gestionnaire de l'ensemble de l'opération.
- Une fois qu'une requête est reçue par le moteur, elle est dirigée vers le Scheduler, qui gère l'ordre des tâches à exécuter. Si plusieurs URL sont fournies, le Scheduler les met en file d'attente pour traitement.
- Le moteur reçoit également des requêtes du Scheduler, qui a pré-organisé les tâches. Ces requêtes sont ensuite envoyées au module Downloader. La tâche du Downloader consiste à récupérer le code HTML de la page Web spécifiée et à le convertir en un objet Response.
- Ensuite, Spider récupère l'objet Response. Il l'utilise pour exécuter des méthodes de scraping spécifiques définies dans la classe Spider. Ensuite, les données traitées sont transférées vers le module ItemPipeline. Là, elles subissent de nombreuses étapes de transformation. Ces étapes peuvent inclure le nettoyage, la validation des données ou l'insertion dans une base de données.
Pour résumer, le framework Scrapy est composé de plusieurs éléments clés. Il comprend les Spiders, qui définissent les méthodes de scraping. Il dispose également du Scrapy Engine, qui contrôle le flux de données. Il y a le Scheduler, qui gère l'ordre des tâches. Et le Downloader, qui récupère le contenu des pages Web. Enfin, il y a l'ItemPipeline, qui applique des étapes aux données extraites. Chaque composant joue un rôle essentiel pour garantir un processus de scraping Web Scrapy efficace et organisé.
Pourquoi Scrapy devrait être votre premier choix ?
Lorsque vous devez explorer une page Web, Scrapy Web Scraper apparaît comme le choix inégalé pour plusieurs raisons convaincantes. Discutons des fonctionnalités de Scrapy et comprenons pourquoi il devrait être votre outil de scraping Web de référence.
Versatilité
Ce qui distingue Scrapy Web Scraper, c'est sa polyvalence et sa flexibilité innées. Le framework surmonte avec grâce les obstacles des pages Web. Il résout également les complexités de l'extraction de données. Il agit comme un compagnon fiable pour ceux qui mangent et respirent le scraping Web, rendant le processus à la fois accessible et efficace.
Exploration facile des pages Web
Le framework Scrapy excelle dans sa capacité à explorer une page Web avec la plus grande précision. Scrapy fournit un moyen simple d'explorer une page Web. Il permet aux développeurs de se concentrer sur l'extraction, et non sur la technologie.
Que vous parcouriez la structure complexe d'un site Web ou que vous extrayiez des données, Scrapy offre une expérience fluide. Il simplifie la tâche complexe de parcourir les pages Web, ce qui en fait un compagnon idéal pour les développeurs débutants et experts.
Simplification de Python
Dans la société des langages de programmation, Python est connu pour sa simplicité et sa lisibilité. Scrapy, étant un framework basé sur Python, hérite de ces qualités. Cela en fait un excellent choix pour ceux qui débutent le scraping Web. Le code Python dans Scrapy est familier. Cela facilite son apprentissage et l'environnement est meilleur pour élaborer une logique de scraping.
Scrapy fournit des fonctionnalités étonnantes qui simplifient la façon dont vous explorez une page Web. Du lancement des requêtes à l'analyse et au stockage des données, Scrapy rationalise chaque étape avec finesse. Il fournit un cadre complet. Il permet de créer des robots évolutifs et efficaces. Les robots sont personnalisés pour divers projets de scraping.
Anonymat avec prise en charge du proxy Scrapy
Maintenir l'anonymat dans le scraping Web est crucial, et Scrapy excelle dans cet aspect. Grâce à la prise en charge du proxy intégré, Scrapy garantit que votre robot reste incognito. Cette fonctionnalité est inestimable lorsqu'il s'agit de bannir les adresses IP ou les CAPTCHA, offrant une solution robuste pour surmonter les obstacles potentiels pendant le processus de scraping. Cette prise en charge du proxy Scrapy ajoute une couche supplémentaire de résilience à votre processus de scraping.
Puissantes capacités de scraping Web
Scrapy Web Scraper est synonyme de puissantes capacités de scraping Web. Il rationalise l'ensemble du processus, de l'envoi des requêtes à l'analyse et au stockage des données. Son efficacité et sa fiabilité le rendent indispensable. Il extrait les données de divers sites Web et fonctionne bien. Peu importe que vous soyez un développeur débutant ou que vous ayez 10 ans d'expérience dans le domaine, Scrapy proxy vous offre les outils nécessaires pour parcourir l'énorme volume de données Web avec une grande facilité. Son architecture est basée sur des composants. Il encourage la personnalisation, permettant aux développeurs de créer des flux de travail de scraping pour répondre aux exigences du projet.
Expérimentez le scraping de niveau supérieur avec Crawlbase
Dans ce tutoriel, nous avons appris les bases de l'exploration et du scraping Web. Nous avons utilisé l'API Crawlbase avec Scrapy pour garder notre scraper caché des sites susceptibles de bloquer nos requêtes. Nous avons également appris les bases de l'extraction des pages de produits Amazon à partir des pages de résultats de recherche Amazon. Vous pouvez modifier l'exemple pour n'importe quel site dont vous avez besoin et commencer à explorer des milliers de pages de manière anonyme avec Scrapy et Crawlbase.
Nous espérons que vous avez apprécié ce tutoriel et nous espérons vous revoir bientôt dans Base d'explorationBon ramper et gratter !