Un guide pour débutant sur le grattage Web avec du python et une belle soupe

Un guide pour débutant sur le grattage Web avec du python et une belle soupe

Le World Wide Web est la source globale et ultime de toutes les données. Le développement rapide qu'Internet a vu au cours des trois dernières décennies a été sans précédent. En conséquence, le Web est monté avec des centaines de téraoctets de données chaque jour qui passe.

Toutes ces données ont une certaine valeur pour une certaine personne. Par exemple, votre historique de navigation a une signification pour les applications de médias sociaux, car ils l'utilisent pour personnaliser les publicités qu'ils vous montrent. Et il y a aussi beaucoup de concurrence pour ces données; Quelques MBS de plus de données peuvent donner aux entreprises un avantage substantiel sur leur concurrence.

Exploration de données avec Python

Pour aider ceux d'entre vous qui sont nouveaux dans le grattage des données, nous avons préparé ce guide dans lequel nous montrerons comment gratter les données du Web à l'aide de Python et de la belle bibliothèque de soupe.

Nous supposons que vous avez déjà une familiarité intermédiaire avec Python et HTML, car vous travaillerez avec ces deux suites des instructions de ce guide.

Soyez prudent quant aux sites sur lesquels vous essayez vos nouvelles compétences en matière d'exploration de données, car de nombreux sites considèrent cela intrusif et sachez qu'il pourrait y avoir des répercussions.

Installation et préparation des bibliothèques

Maintenant, nous allons utiliser deux bibliothèques que nous allons utiliser: la bibliothèque de demande de Python pour charger le contenu des pages Web et la belle bibliothèque de soupe pour le bit de grattage réel du processus. Il existe des alternatives à BeautifulSoup, Hors You, et si vous connaissez l'une des éléments suivants, n'hésitez pas à les utiliser à la place: Scrappy, mécaniser, Selenium, Portia, Kimono et Parsehub.

La bibliothèque de demande peut être téléchargée et installée avec la commande PIP comme sous:

# PIP3 Installer les demandes

La bibliothèque de la demande doit être installée sur votre appareil. De même, téléchargez également BeautifulSoup:

# PIP3 Installer BeautifulSoup4

Avec cela, nos bibliothèques sont prêtes pour une action.

Comme mentionné ci-dessus, la bibliothèque de requêtes n'a pas beaucoup d'utilisation autre que de récupérer le contenu des pages Web. La bibliothèque BeautifulSoup et les bibliothèques demandes ont une place dans chaque script que vous allez écrire, et ils doivent être importés avant chacun comme suit:

$ Demandes d'importation
$ de BS4 Import BeautifulSoup comme bs

Cela ajoute le mot clé demandé à l'espace de noms, signalant à Python le sens du mot-clé chaque fois que son utilisation est invitée. La même chose arrive au mot clé BS, bien que nous ayons ici le bénéfice d'attribuer un mot-clé plus simple pour BeautifulSoup.

Page Web = Demandes.obtenir (URL)

Le code ci-dessus récupère l'URL de la page Web et en crée une chaîne directe, en la stockant dans une variable.

$ webContent = page Web.contenu

La commande ci-dessus copie le contenu de la page Web et les attribue au contenu Web variable.

Avec cela, nous avons fini avec la bibliothèque de la demande. Il ne reste plus qu'à transformer les options de la bibliothèque de la demande en options belles-groupe.

$ htmlcontent = bs (WebContent, «HTML.analyseur ")

Cela analyse l'objet de demande et le transforme en objets HTML lisibles.

Avec tout cela pris en charge, nous pouvons passer au bit de grattage réel.

Stracage sur le Web avec Python et BeautifulSoup

Passons à autre chose et voyons comment nous pouvons gratter les objets HTML de données avec BeautifulSoup.

Pour illustrer un exemple, pendant que nous expliquons les choses, nous travaillerons avec cet extrait HTML:

Nous pouvons accéder au contenu de cet extrait avec BeautifulSoup et l'utiliser sur la variable de contenu HTML comme sous:


Le code ci-dessus recherche toutes les balises nommées et la montre à l'utilisateur. S'il trouve plus d'une étiquette, il les montre un à la fois:

Technologie

Pour enregistrer simultanément les balises nommées dans une liste, nous émetrions le code final comme sous:

La sortie doit revenir comme ceci:

Pour convoquer l'une des balises, indexez la liste et prenez celle que vous voulez.

Voyons maintenant comment choisir les étiquettes en perspective leurs caractéristiques. Pour séparer A, nous aurions besoin des balises avec l'attribut «Tech_head». Entrez le code suivant:


pour div dans la soupe.find_all ('div', attrs = 'class' = 'Tech_head'):

Cela récupère la balise.

Vous obtiendriez:

Technologie

Tout sans étiquettes.

Enfin, nous couvrirons comment choisir la valeur de l'attribut dans une balise. Le code doit avoir cette balise:

Pour faire fonctionner la valeur associée à l'attribut SRC, vous utiliseriez ce qui suit:

htmlcontent.trouver («img») [«src»]

Et la sortie se révèle:

"Xyzlady.jpg "

Oh mon garçon, c'est vraiment beaucoup de travail!

Si vous sentez que votre familiarité avec Python ou HTML est inadéquate ou si vous êtes simplement submergé par le grattage Web, ne vous inquiétez pas.

Si vous êtes une entreprise qui doit acquérir régulièrement un type particulier de données mais ne peut pas faire de la crampon sur le Web, il existe des moyens de contourner ce problème. Mais sachez que ça va vous coûter de l'argent. Vous pouvez trouver quelqu'un pour faire le grattage pour vous, ou vous pouvez obtenir le service de données premium à partir de sites Web comme Google et Twitter pour partager les données avec vous. Ceux-ci partagent des parties de leurs données en utilisant des API, mais ces appels d'API sont limités par jour. En plus de cela, de tels sites Web peuvent être très protecteurs de leurs données. En règle générale, de nombreux sites ne partagent aucune de leurs données.

Dernières pensées

Avant de terminer, laissez-moi vous dire à haute voix si cela n'a pas déjà été évident; Les commandes find (), find_all () sont vos meilleurs amis lorsque vous êtes sorti avec BeautifulSoup. Bien qu'il y ait beaucoup plus à couvrir pour maîtriser les données de grattage avec Python, ce guide devrait être suffisant pour ceux d'entre vous qui commencent juste.