Grattage Web

Web scraping à l'aide de Python

Web scraping à l'aide de Python
Le grattage Web est un moyen automatisé d'extraire et de traiter des informations de sites Internet en très grande quantité. Les données sur les sites Internet ne sont pas structurées, elles peuvent être collectées et structurées via le grattage Web. Les moteurs de recherche comme Google, Bing, Yahoo ont des robots qui récupèrent les données des sites Internet et les indexent sur leurs pages de recherche. Les données peuvent également être extraites à l'aide d'API, ce qui est probablement l'un des meilleurs moyens d'extraire des données du Web. Des sites Web célèbres comme Facebook, Google, Amazon fournissent aux utilisateurs des API bien structurées pour interagir avec les données, mais vous ne verrez pas ces API partout.

Par exemple, si vous souhaitez obtenir des mises à jour régulières sur vos produits préférés pour des 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 que le site Web n'a pas d'API pour cela, alors le seul choix il vous reste du grattage Web.Le grattage Web peut être illégal sur certains sites Web, selon qu'un site Web le permet ou non. Les sites Web utilisent des « robots ».txt" pour définir explicitement les URL qui ne sont pas autorisées à être supprimées. Vous pouvez vérifier si le site Web le permet ou non en ajoutant « robots.txt" avec le nom de domaine du site. Par exemple, https://www.Google.com/robots.SMS

Dans cet article, nous utiliserons Python pour le scraping car il est très facile à configurer et à utiliser. Il possède de nombreuses bibliothèques intégrées et tierces qui peuvent être utilisées pour le grattage et l'organisation des données. Nous utiliserons deux bibliothèques Python « urllib » pour récupérer la page Web et « BeautifulSoup » pour analyser la page Web afin d'appliquer les opérations de programmation.

Comment fonctionne le grattage Web?

Nous envoyons une demande à la page Web, à partir de laquelle vous souhaitez récupérer les données. Le site Web répondra à la demande avec le contenu HTML de la page. Ensuite, nous pouvons analyser cette page Web dans BeautifulSoup pour un traitement ultérieur. Pour récupérer la page Web, nous utiliserons la bibliothèque "urllib" en Python.

Urllib téléchargera le contenu de la page Web en HTML. Nous ne pouvons pas appliquer d'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 extraira les données intéressantes.

Extraire des articles de Linuxhint.com

Maintenant que nous avons une idée du fonctionnement du grattage Web, faisons un peu de pratique. Nous allons essayer de gratter les titres d'articles et les liens de Linuxhint.com. Alors ouvrez https://linuxhint.com/ dans votre navigateur.

Appuyez maintenant sur CRTL+U pour afficher le code source HTML de la page Web.

Copiez le code source et accédez à https://htmlformatter.com/ pour embellir le code. Après avoir embelli 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 ce qui suit

// Installer une belle bibliothèque de soupes, urllib vient
pré-installé en Python
ubuntu@ubuntu:~$ sudo pip3 installer bs4
ubuntu@ubuntu:~$ python3
Python 3.7.3 (par défaut, le 7 octobre 2019, 12:56:13)
[CCG 8.3.0] sur Linux

Tapez "aide", "droit d'auteur", "crédits" ou "licence" pour plus d'informations.

//Importer urllib
>>> importer l'urllib.demander
//Importer une belle soupe
>>> de bs4 import BeautifulSoup
//Entrez l'URL que vous souhaitez récupérer
>>> my_url = 'https://linuxhint.com/'
//Demander l'URL de la page Web à l'aide de la commande urlopen
>>> client = urllib.demander.urlopen(mon_url)
//Stocker la page Web HTML dans la variable "html_page"
>>> page_html = client.lis()
//Ferme la connexion URL après avoir récupéré la page Web
>>> cliente.Fermer()
// analyse la page Web HTML dans BeautifulSoup pour le grattage
>>> page_soup = BeautifulSoup(html_page, "html.parseur")

Regardons maintenant le code source HTML que nous venons de copier et de coller pour trouver des choses qui nous intéressent.

Vous pouvez voir que le premier article répertorié sur Linuxhint.com s'appelle "74 Bash Operators Examples", trouvez-le dans le code source. Il est placé entre des balises d'en-tête et son code est



class="category-1561">Programmation BASH


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 des titres d'articles et des liens. Le prochain article a le code HTML suivant



class="category-1343">Ubuntu
Vernis


title="Comment configurer le cache Varnish sur Ubuntu 18.04">
Comment configurer le cache Varnish sur Ubuntu 18.04


Vous pouvez voir que tous les articles, y compris ces deux sont inclus dans le même "

” et utilisez la même classe “entry-title”. Nous pouvons utiliser la fonction "findAll" dans la bibliothèque Beautiful Soup pour trouver et répertorier tous les "

" ayant la classe " titre d'entrée ". Tapez ce qui suit dans votre console Python

// Cette commande trouvera tout "

” éléments de balise ayant la classe nommée
"titre d'entrée". La sortie sera stockée dans un tableau.
>>> articles = page_soupe.findAll("h2" ,
"classe" : "titre-entrée")
// Le nombre d'articles trouvés en première page de Linuxhint.com
>>> len(articles)
102
// Premier extrait "

” élément de balise contenant le nom de l'article et le lien
>>> articles[0]


title="74 Exemples d'opérateurs Bash">
74 Exemples d'opérateurs Bash


// Deuxième extrait "

” élément de balise contenant le nom de l'article et le lien
>>> articles[1]


title="Comment configurer le cache Varnish sur Ubuntu 18.04">
Comment configurer le cache Varnish sur Ubuntu 18.04


// Affichage uniquement du texte dans les balises HTML à l'aide de la fonction texte
>>> articles[1].texte
'Comment configurer le cache Varnish sur Ubuntu 18.04'

Maintenant que nous avons une liste de tous les 102 HTML "

” éléments de balise contenant le lien de l'article et le titre de l'article. Nous pouvons extraire à la fois les liens des articles et les titres. Pour extraire des liens de "", nous pouvons utiliser le code suivant

// Le code suivant extraira le lien du premier

élément de balise
>>> pour le lien dans les articles[0].find_all('a', href=True) :
…    print(link['href'])

https://linuxhint.com/bash_operator_examples/

Maintenant, nous pouvons écrire une boucle for qui parcourt chaque "

élément de balise " dans la liste "articles" et extraire le lien et le titre de l'article.

>>> pour i dans la plage (0,10) :
…    print(articles[i].texte)
…    pour le lien dans les articles[i].find_all('a', href=True) :
…              print(link['href']+"\n")

74 Exemples d'opérateurs Bash
https://linuxhint.com/bash_operator_examples/
Comment configurer le cache Varnish sur Ubuntu 18.04
https://linuxhint.com/varnish_cache_ubuntu_1804/
PineTime : une montre intelligente compatible avec Linux
https://linuxhint.com/pinetime_linux_smartwatch/
10 meilleurs ordinateurs portables Linux bon marché à acheter avec un budget
https://linuxhint.com/best_cheap_linux_laptops/
Des jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux…
https://linuxhint.com/hd_remastered_games_linux/
60 applications d'enregistrement d'écran FPS pour Linux
https://linuxhint.com/60_fps_screen_recording_apps_linux/
74 Exemples d'opérateurs Bash
https://linuxhint.com/bash_operator_examples/
… couper…

De même, vous enregistrez ces résultats dans un fichier JSON ou CSV.

Conclusion

Vos tâches quotidiennes ne sont pas seulement la gestion de fichiers ou l'exécution de commandes système. Vous pouvez également automatiser les tâches liées au Web telles que 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 d'énormes automatisations de tâches en utilisant « urllib » et « BeautifulSoup ».

Remappez les boutons de votre souris différemment pour différents logiciels avec X-Mouse Button Control
Peut-être que vous avez besoin d'un outil qui pourrait faire changer le contrôle de votre souris avec chaque application que vous utilisez. Si tel est...
Examen de la souris sans fil Microsoft Sculpt Touch
J'ai lu récemment sur le Microsoft Sculpt Touch souris sans fil et j'ai décidé de l'acheter. Après l'avoir utilisé pendant un certain temps, j'ai déci...
Trackpad et pointeur de souris à l'écran AppyMouse pour tablettes Windows
Les utilisateurs de tablettes ratent souvent le pointeur de la souris, surtout lorsqu'ils ont l'habitude d'utiliser les ordinateurs portables. Les sma...