Tutoriel: Go Spider! Web Scraping avec Python et Scrapy

(Schwinn Zhang) (19 janvier 2019)

source de limage: https://myfigurecollection.net/item/736413

Vous lavez probablement entendu parler de «web scraping». Si ce nest pas le cas, le web scraping consiste à utiliser un algorithme informatique pour récupérer les informations cibles dun site Web. La bibliothèque python Scrapy a été construite exactement pour cette tâche. La belle soupe est une autre option, mais elle est lente. Quoi quil en soit, vous voulez acquérir cette compétence pour créer des logiciels, pour la science des données ou pour le Kremlin (clin dœil). Il existe une multitude de tutoriels sur ce sujet. « Où est-ce que je commence? » « Y a-t-il une feuille de route pour cela? » Après avoir passé trois jours à passer au crible des informations bonnes, mauvaises et obsolètes, je suis ici pour vous fournir cette feuille de route de scraping Web.

Par où commencer

Mon plan était de suivre les projets python sur cette liste . Si vous avez décidé de commencer par Twitter Mining , alors BONNE CHANCE (sarcastiquement) car jattends toujours que Twitter maccorde laccès à leur API après 5 jours 17 heures et 7 minutes. Alors, alerte de backlog! Naturellement, je suis passé au suivant: Grattez un site Web avec Python (et MongoDB) . Jai mis MongoDB entre parenthèses pour plus de simplicité. MongoDB coûtera beaucoup de temps et pour mon petit programme, ce nest même pas nécessaire. Je préfère faire fonctionner un racleur Web python total, puis ajouter la fonctionnalité MongoDB plus tard. La gestion du temps signifie couper les déclencheurs et aller au cœur. Software Dev 101. Quoi quil en soit, suivez cet article Grattez un site Web avec Python (et MongoDB) et vous aurez une idée de base du fonctionnement du web scraping.

XPath contre CSS? Jai choisi CSS

Ensuite, je suis resté coincé sur quelque chose appelé XPath, en gros, une instruction basée sur une URL qui indique des informations sur la cible à notre araignée scout. Après une longue navigation dans le tutoriel, jai trouvé ce jeu de nourriture qui vous aide à apprendre et à vous entraîner à écrire XPath. Si vous redoutez toujours XPath, il existe un autre moyen, que larticle du didacticiel na pas mentionné…

De Scrapy tutoriel dans sa documentation, jai trouvé mon ami CSS, qui a une syntaxe simple et plus directe. En fait, la documentation Scrapy est le MEILLEUR tutoriel. C’est le plus récent, le plus complet et de nombreux tutoriels de blog sont basés sur cela. Dans ce didacticiel, jai trouvé le meilleur moyen de pratiquer le ciblage des informations Web via le shell IPython de Scrapy, essentiellement un bloc-notes Jupyter sur votre terminal. Dans la ligne de commande, utilisez

scrapy shell [url entre guillemets]

Ensuite, suivez simplement le tutoriel Scrapy sur quotes.toscrape.com. Cest un exemple idéal car le site Web est simple avec très peu de couches de CSS intégrées. Après quelques tours, vous êtes déjà un ninja de scraping junior. À ce stade, je me sentais suffisamment en confiance pour gratter tous les gros titres de la page daccueil du New York Times . Et voilà, cétait une tâche impossible à ce stade car la première page a une quantité impressionnante dintégration. Eh bien, la première page est juste une combinaison organisée darticles de chaque section, non? En suivant cette logique, jai pu accéder à la section Op-Ed plus simple et à la section Art pour réussir à gratter tous les titres. Voici mon repo sur git.

Alors, voici ma première araignée. Jaurai besoin dintégrer plus de fonctions et de fonctionnalités. Mais pour linstant, ça marche. Vous pouvez voir que tous les titres de la page NYT Op-Ed ont été stockés dans un fichier json ici. Voici une capture décran. Vous pouvez trouver des doublons ici. Cest bon. Nous pouvons ensuite créer un détecteur en double. Je prévois également de récupérer plusieurs sources dactualités et de placer leurs résultats dans le même fichier.

NYT Résultats du grattoir OpEdTitles. Source: Schwinn Zhang

Résumé de lalgorithme Spider

Étapes suivantes

  1. Déboguer et / ou ajouter des fonctionnalités à votre spider
  2. Essayer pour gratter un ensemble de données. Voici un bon tutoriel: Utilisation de Scrapy pour créer votre propre ensemble de données .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *