Ce repo a pour but de présenter mon petit script python permettant de récupérer les références du de la page Wikipédia pour Python disponible ici : Python (langage) - Wikipédia
Les références seront récupérées par scraping, probablement en utilisant le module BS4 (beautifulsoup). Elles sont insérées dans un fichier TXT.
Installer au préalable beautifulsoup4
et requests
.
J'ai d'abord observé la structuration du site et la syntaxe avec laquelle il présentait les références. J'ai ainsi pu voir comment je pourrais les récupérer par la suite.
Les références sont stockées dans la liste ordonnées trouvable entre les balises :
<ol class="references"> ... </ol>
Cela nous permettra de les rechercher facilement avec bs4.
J'ai ensuite cherché plus précisément comment je pouvais identifier une référence (balise li
).
Puis j'ai cherché comment je pouvais remonter aux informations sur la référence (nom, auteur,...).
La difficulté que j'ai rencontrée venait de la variété de types de références, qui n'étaient pas toutes présentées avec la même syntaxe (selon si c'est un site, un ouvrage, etc). J'ai finalement écrit dans le fichier txt seulement les informations visibles sur la page (nom de la référence, auteur, date, ...).
En faisant tourner le code, j'obtiens le fichier txt suivant :
Télécharger le dossier ExoScraping_Site. Aller dans le dossier ExoScraping_Site et exécuter les commandes suivantes :
python manage.py migrate
et python manage.py runserver
. Il faut ensuite se rendre à l'adresse indiquée (généralement http://127.0.0.1:8000/).
Quand j'ai dû faire cet exo, j'étais en train de finir mon projet de site de gestion financière sous Python Django. Donc pour l'affichage web, je me suis dit que je pouvais réutiliseer les connaissances que j'avais développées pour mon projet.
J'ai fait une trame de site toute simple, avec :
- une page d'index à l'adresse
/scraping/
- une page générique de scraping des références d'une page wikipédia donnée à l'adresse
/scraping/refs_wiki/nom_de_la_page/
.
Par exemple, pour les références de la page Python (langage) se trouvant à l'adresse https://fr.wikipedia.org/wiki/Python_(langage), il faut se rendre sur la page de mon petit site /scraping/refs_wiki/Python_(langage)/
On peut donc s'amuser à chercher les références d'autres pages wikipédia.
Le site utilise certes un framework de Python (Django), mais j'ai tout fait "à la main" en termes d'html et de css. Cela explique d'ailleurs l'apparence assez simpliste du site...
J'ai réadapté légèremet le script que j'avais écrit dans la partie 1.
Les principaux fichiers à voir sont (du plus important au moins important):
- scraping/views.py
- scraping/scraping_refs.html
- scraping/static/scraping/style.css
- scraping/urls.py.
Voilà ce qu'on obtient en faisant tourner mon site sous python django:
Page d'extraction des références pour la page Python :
Exemple d'adaptation du site aux autres pages wikipédia :
- Documentation de BS4
- Web Scraping et Analyse du HTML en Python avec Beautiful Soup
- Requests: HTTP for Humans™
- Documentation Django
Ce mini-projet est un exercice proposé pour ma candidature en tant que stagiaire chez Bib Batteries.