Web Scraping avec Ruby – Tutoriel

Publié: 2017-08-24

L'essor notable et la croissance exponentielle des données Web ont ouvert de nouvelles voies pour divers secteurs. Des unités de fabrication aux secteurs de services, les données sont un élément essentiel adopté par les entreprises du monde entier pour rester pertinentes face à l'évolution des temps. Les données Web contiennent non seulement une mine d'informations sur la concurrence et le marché, mais offrent également des informations qui peuvent être utilisées pour améliorer les processus et les opérations internes.

Le scraping Web permet d'extraire des données en ligne ciblées pour une utilisation ultérieure par le moteur d'analyse ou l'outil de BI. L’objectif du web scraping reste varié –

  • L'extraction de données est un moyen efficace de faire la publicité de votre entreprise et de promouvoir des produits/services
  • Les utilisateurs, les consommateurs et les visiteurs Web peuvent obtenir les informations souhaitées sur un service ou un produit.
  • Les entreprises peuvent obtenir des informations concurrentielles sur les stratégies et les plans en place pour accroître leur part de marché respective.
  • Les marques peuvent connaître la perception générale autour de leur marque grâce aux interactions des médias sociaux entre les personnes. Cela aide les équipes marketing à concevoir et à déployer des messages marketing pertinents destinés spécifiquement à la personnalité de ce public, augmentant ainsi la probabilité de conversion.
  • Les entreprises peuvent obtenir plus de clarté sur les besoins, les points faibles et les préférences de leur public cible. Ils peuvent ensuite orienter le développement de produits dans la bonne direction grâce à ces précieuses informations.

Imaginez les avantages si nous pouvions structurer les données Web, éliminer le bruit et les exporter vers des formats lisibles par machine. Voyons comment cela peut être fait en utilisant Ruby.

Choix du script de codage

L'extraction de données et la mise en œuvre effective des pratiques de grattage Web ne sont pas une affaire facile. Des connaissances élémentaires en CSS, HTML et le bon script de codage faciliteront votre voyage. Votre choix du script de codage jouera un rôle crucial dans ce contexte. Découvrons pourquoi Ruby crée un buzz sur le marché.

Si vous envisagez de lancer votre premier programme de grattage Web, Ruby peut jouer le rôle d'un langage de script fiable. De nombreuses raisons sont responsables de la popularité inégalée de ce langage, et les raisons suivantes vous aideront à comprendre pourquoi il est si efficace !

  • Un script puissant : Ruby-On-Rails est un script très puissant et efficace pour le web scraping. Pour les débutants et les débutants, ce langage particulier s'est avéré être une ressource solide.
  • Communauté fiable : Ruby s'accompagne d'une solide équipe de développeurs qui forment une communauté fiable et très fiable. Avec des millions de documentations, aucun problème ne sera énorme pour vous !
  • Installation facile : La procédure d'installation est bien documentée et assez facile à suivre.

Ce sont quelques-uns des facteurs qui font de Ruby une option indispensable pour le scraping Web. La configuration et l'installation doivent être effectuées de manière optimale, car ces processus sont essentiels à l'exécution des processus d'extraction de données. Voici un tutoriel complet pour vous aider tout au long du processus.

Le guide étape par étape

Avant de commencer, soyons clairs sur certains points. Ce didacticiel est destiné aux utilisateurs de Mac. Si vous utilisez une autre machine, le processus de configuration initial peut être légèrement différent. Deuxièmement, le programme utilise Nokogiri, qui peut transformer des pages Web en "objets Ruby", simplifiant ainsi le processus de grattage Web. Avec ces deux facteurs à l'esprit, vous pouvez vous lancer dans vos projets.

Dans ce guide, nous allons gratter les gros titres des 100 premières annonces sur olx pour les voitures d'occasion.

Le processus de configuration

Voici les conditions de base pour développer une configuration complète pour l'extraction Web à l'aide de Ruby.

  • Votre ordinateur, qu'il s'agisse d'un ordinateur de bureau ou d'un ordinateur portable, devrait avoir Ruby dessus. Si vous êtes un fidèle de Mac, alors la moitié du travail est faite.
  • Vous aurez besoin d'un éditeur de texte. C'est nécessaire pour écrire les commandes du programme. Si votre ordinateur n'a pas d'option intégrée, essayez de télécharger Sublime Text. Avec des fonctionnalités intéressantes et des commandes intéressantes, cet éditeur de texte rendra le codage passionnant et intéressant.
  • Une autre condition requise est une connaissance approfondie de l'utilisation du HTML et du CSS. Si vous envisagez de maîtriser l'art du web scraping, la connaissance du CSS et du HTML sera cruciale.
  • Familiarisez-vous avec Ruby. Un peu d'information est essentielle dans ce contexte. Vous pouvez consulter certains des cours en ligne et améliorer votre base de connaissances. Une fois ces processus et ces facteurs en place, il sera temps de commencer les étapes cruciales.

Étape 1 : Installer les dépendances

Pendant le processus d'installation, assurez-vous d'obtenir des informations complètes sur les trois Ruby Gems utiles. Ces trois options incluent :

  • NokoGiri
  • Partie HTTP
  • Faire levier

Puisque nous avons déjà expliqué un peu Nokogiri, parlons HTTParty et Pry. HTTParty est un joyau que notre grattoir Web utilisera pour envoyer des requêtes HTTP aux pages que nous grattons. Nous utiliserons HTTParty pour envoyer des requêtes GET, qui renverront tout le contenu HTML de la page sous forme de chaîne. Pour le débogage, nous utilisons Pry, qui est un joyau rubis. Cela nous aidera à analyser le code de la page Web et constitue un élément essentiel de cette configuration.

Suivez les commandes ci-dessous et exécutez-les sur votre ordinateur pour installer ces gemmes sur votre ordinateur.

bijou installer nokogiri

fête d'installation de gemmes

levier d'installation de bijou

Etape 2 : La création des fichiers scraper

Vous devrez créer un dossier nommé nokogiri_tutorial dans l'un des emplacements préférés de votre ordinateur. Le bureau est l'endroit idéal pour le faire. L'étape suivante consiste à télécharger un éditeur de texte comme "Sublime Text" ou toute autre option de votre choix et à enregistrer le fichier dans ce dossier nommé "web_scraper.RB". Une fois ces étapes terminées, vous êtes prêt à travailler sur les dépendances.

Étape 3 : Envoi de requêtes HTTP à la page

Commencez par créer une opération variable nommée 'page' et assurez-vous qu'elle est égale à la requête HTTParty GET de la page que nous récupérons.

Dans ce cas : https://www.olx.in/all-results/q-cars/

Après cela, vous pouvez entrer "Pry. commencer (contraignant). Naviguez et trouvez le dossier marqué comme un fichier web_scraping.Rb. Enregistrez-le immédiatement sur votre bureau et ouvrez le terminal en entrant cette commande.

cd bureau/nokogiri_tutorial

Votre programme de web scraping est prêt à être mis en œuvre. Vous pouvez exécuter cette commande et l'exécuter :

Ruby web_scraper.RB

Le terminal devrait être transformé en Pry, et il est essentiel de vérifier la mise en page avant de travailler sur d'autres processus. Vous pouvez passer à l'étape suivante. Mais, avant de faire cela, assurez-vous de taper "exit" dans le terminal choisi, quittez Pry, puis revenez à l'emplacement d'origine du dossier du programme.

Étape 4 : Passer à NokoGiri

L'objectif ici est d'abord de convertir et de modifier ces listes de voitures en objets NokoGiri, car cela est crucial pour l'analyse. La création de variables est importante et vous devrez en développer une nouvelle nommée "parse_page". Nokogiri a une manière particulière de convertir les chaînes HTML en objets Nokogiri. Vous pouvez laisser le Pry au bas du code.

L'étape suivante consistera à enregistrer le fichier contenant la commande Ruby. Pry s'ouvrira automatiquement et une nouvelle variable "parse_page" devra être saisie. Cela renverra la page Olx en tant qu'objet Nokogiri.

Allez-y et créez un fichier HTML dans le même dossier avec le nom 'cars.html' et copiez-collez les résultats de la commande parse_page dans ce fichier. Ces données HTML formatées seront utiles pour référence ultérieure.

Avant de passer à l'étape suivante, quittez Pry dans votre terminal.

Étape 5 : analyse des données

L'analyse de données nécessite une connaissance élémentaire de la programmation ainsi que du codage. Étant donné que vous cherchez à extraire les titres de toutes les listes de voitures, le fichier cars.html vous sera utile pour la vérification croisée. Localisez les éléments cruciaux dans le dossier et effectuez des inspections à l'aide de l'"outil d'inspection des éléments", ou vous pouvez également afficher le "code source de la page".

Puisque nous avons trouvé que les listes sont dans une div avec le nom de classe 'content', voici les commandes qui suivent :

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

cars_array

Vérifiez les dispositions de codage et les tableaux chaque fois que vous exécutez la commande. Une fois l'analyse terminée, vous devrez exporter les ensembles de données vers des fichiers CSV.

Étape 6 : Exporter des fichiers de données vers CSV

Lorsque vous atteignez l'étape 6, vous devez avoir terminé le processus de grattage avec succès et les données non structurées ont été transformées en ensembles de données structurés. Revenons maintenant au terminal. Quittez Pry si vous y êtes toujours afin que votre terminal se trouve dans le dossier nokogiri_tutorial qui contient le programme de grattage et le fichier cars.html. Tapez maintenant la commande suivante :

toucher voitures.csv

Il vous restera maintenant un fichier CSV vierge dans lequel vous pourrez enregistrer les données de cars_array. Vous pouvez maintenant écrire un script simple pour écrire ces données sur notre nouveau fichier CSV et vous avez vos données structurées d'annonces de voitures dans un fichier CSV. Cela facilitera le traitement et la manipulation au fur et à mesure que vous le souhaitez.

Pensées d'adieu

J'espère que cela devrait vous avoir donné une idée approximative de la façon dont vous pouvez gratter un site Web en utilisant Ruby. Il est temps d'explorer et d'explorer des sites plus complexes et stimulants en utilisant cette compétence nouvellement maîtrisée.