Skip to content

Latest commit

 

History

History
96 lines (59 loc) · 5.2 KB

README.md

File metadata and controls

96 lines (59 loc) · 5.2 KB

ExoScraping

Cas pratique Python : Scraping du Wiki Python

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.

Première partie : renvoyer les références dans un fichier txt

Prérequis pour run le code

Installer au préalable beautifulsoup4 et requests.

Principe

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.

references_inspection_page_wiki

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).

references_inspection_page_wiki_2

Puis j'ai cherché comment je pouvais remonter aux informations sur la référence (nom, auteur,...).

references_inspection_page_wiki_details

references_inspection_page_wiki_details_autre_langue

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, ...).

Résultats

En faisant tourner le code, j'obtiens le fichier txt suivant : Résultat Scraping

Deuxième partie : faire un affichage web simple

Prérequis supplémentaires pour lancer l'application, et donc la page web

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/).

Principe

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...

Fonctionnement

J'ai réadapté légèremet le script que j'avais écrit dans la partie 1.

code

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.

Résultats

Voilà ce qu'on obtient en faisant tourner mon site sous python django:

Démo du site

Page d'extraction des références pour la page Python :

refs_python_1

Exemple d'adaptation du site aux autres pages wikipédia :

refs_autres_sites

Page d'accueil du site : index_site

Références :

Ce mini-projet est un exercice proposé pour ma candidature en tant que stagiaire chez Bib Batteries.