Par exemple, si vous souhaitez obtenir des mises à jour régulières sur vos produits préférés pour les offres de réduction ou si vous souhaitez automatiser le processus de téléchargement des épisodes de votre saison préférée un par un, et le site Web n'a pas d'API, alors le seul choix Vous vous retrouvez avec le grattage Web.Le grattage Web peut être illégal sur certains sites Web, selon que un site Web le permet ou non. Les sites Web utilisent «Robots.Fichier txt "pour définir explicitement les URL qui ne sont pas autorisées à être abandonnées. Vous pouvez vérifier si le site Web le permet ou non en ajoutant «Robots.txt »avec le nom de domaine du site Web. Par exemple, https: // www.Google.com / robots.SMS
Dans cet article, nous utiliserons Python pour le grattage car il est très facile à configurer et à utiliser. Il dispose de nombreux bibliothèques intégrées et tierces qui peuvent être utilisées pour gratter et organiser des données. Nous utiliserons deux bibliothèques Python «Urllib» pour récupérer la page Web et «BeautifulSoup» pour analyser la page Web pour appliquer les opérations de programmation.
Comment fonctionne le grattage Web?
Nous envoyons une demande à la page Web, d'où vous souhaitez gratter les données. Le site Web répondra à la demande avec le contenu HTML de la page. Ensuite, nous pouvons analyser cette page Web à BeautifulSoup pour un traitement ultérieur. Pour récupérer la page Web, nous utiliserons la bibliothèque «Urllib» à Python.
Urllib téléchargera le contenu de la page Web en HTML. Nous ne pouvons pas appliquer des opérations de chaîne à cette page Web HTML pour l'extraction de contenu et le traitement ultérieur. Nous utiliserons une bibliothèque Python «BeautifulSoup» qui analysera le contenu et extraire les données intéressantes.
Gratter les articles de Linuxhint.com
Maintenant que nous avons une idée du fonctionnement du grattage du Web, faisons un peu de pratique. Nous essaierons de gratter les titres et les liens d'articles de Linuxhint.com. So ouvre https: // linuxhint.com / dans votre navigateur.
Maintenant, appuyez sur CRTL + U pour afficher le code source HTML de la page Web.
Copiez le code source et accédez à https: // htmlformatter.com / pour brasser le code. Après avoir empêché le code, il est facile d'inspecter le code et de trouver des informations intéressantes.
Maintenant, copiez à nouveau le code formaté et collez-le dans votre éditeur de texte préféré comme Atom, Sublime Text, etc. Maintenant, nous allons gratter les informations intéressantes en utilisant Python. Tapez les éléments suivants
// Installez la belle bibliothèque de soupe, Urllib vientTapez «Help», «Copyright», «Crédits» ou «Licence» pour plus d'informations.
// importe UrllibRegardons maintenant le code source HTML que nous venons de copier et de coller pour trouver des choses de notre intérêt.
Vous pouvez voir que le premier article répertorié sur Linuxhint.com est nommé «74 exemples d'opérateurs de bash», trouve cela dans le code source. Il est enfermé entre les balises d'en-tête, et son code est
title = "74 exemples d'opérateurs bash"> 74 opérateurs bash
Exemples
Le même code se répète encore et encore avec le changement de titres et de liens d'articles. Le prochain article a le code HTML suivant
Vous pouvez voir que tous les articles, y compris ces deux, sont enfermés dans le même "
«Tag et utilisez la même classe« entrée ». Nous pouvons utiliser la fonction «Findall» dans la belle bibliothèque de soupe pour trouver et énumérer tout «
«Avoir une classe« entrée ». Tapez ce qui suit dans votre console Python
// Cette commande trouvera tout "»Éléments de balise ayant une classe nommée
«Entrée». La sortie sera stockée dans un tableau.
>>> articles = page_soup.Findall ("H2" ,
"classe": "entrée")
// le nombre d'articles trouvés sur la première page de Linuxhint.com
>>> Len (articles)
102
// d'abord extrait "
”Élément de balise contenant le nom et le lien de l'article
>>> Articles [0]
title = "74 exemples d'opérateurs bash">
74 exemples d'opérateurs de bash
”Élément de balise contenant le nom et le lien de l'article
>>> Articles [1]
Maintenant que nous avons une liste des 102 HTML "
”Tag Elements qui contient un lien d'article et un titre d'article. Nous pouvons extraire les deux liens et titres d'articles. Pour extraire les liens des balises «», nous pouvons utiliser le code suivant
// Le code suivant extrait le lien de d'abord élément d'étiquette
>>> pour le lien dans les articles [0].find_all ('a', href = true):
… Imprimer (lien ['href'])
…
https: // linuxhint.com / bash_operator_examples /
Maintenant, nous pouvons écrire une boucle pour itérère à travers chaque «
«Élément de balise dans la liste des« articles »et extraire le lien et le titre de l'article.
>>> pour i à portée (0,10):De même, vous enregistrez ces résultats sur un fichier JSON ou CSV.
Conclusion
Vos tâches quotidiennes ne sont pas seulement la gestion des fichiers ou l'exécution des commandes système. Vous pouvez également automatiser des tâches liées au Web comme l'automatisation du téléchargement de fichiers ou l'extraction de données en grattant le Web en Python. Cet article était limité à une simple extraction de données, mais vous pouvez effectuer une énorme automatisation des tâches en utilisant «Urllib» et «BeautifulSoup».