Skip to content

TD de scraping du cours SYD du département Télécom de l'INSA Lyon

License

Notifications You must be signed in to change notification settings

thomslor/syd-scraping

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SYD : Scraping

TD de scraping du cours de systèmes distribués.

L'objectif de ce TD est de manipuler des données comme "dans la vrai vie", en m'inspirant de situations réellement rencontrées dans mon travail. On va voir aussi l'architecture que l'on peut mettre en place pour cela.

< À lire avec la voix d'introduction du Comité des reprises (https://www.youtube.com/user/ComiteDesReprises) >

Le ministère de l'enseignement supérieur et de la recherche a lancé le chantier compétences pour permettre une meilleure lecture de l'offre de formation et pour mieux qualifier les compétences des étudiants. Mais cela demande du temps aux enseignants, enseignant-chercheurs et l'administration des établissements d'enseignement supérieur.

Mais l'INSA possède une cellule secrète qui agit dans ce genre de cas et vous en faites parti ! Vous devez agir.

Prérequis

Je pars du principe que vous savez coder en Javascript et utiliser git et github. Si ce n'est pas le cas, je vous invite pour le prochain TD à lire :

Installation de node

Vous pouvez télécharger Node.js ici : https://nodejs.org/en/download/current/.

Dans le cas des salles machines de TC

Télécharger les binaires et les décompresser :

wget https://nodejs.org/dist/v12.11.1/node-v12.11.1-linux-x64.tar.xz
tar -xJvf node-v12.11.1-linux-x64.tar.xz

Mettre à jour votre PATH :

echo "export PATH=$(pwd)/node-v12.11.1-linux-x64/bin/:$PATH" >> ~/.bashrc

Recharger vos variables d'environnement :

. ~/.bashrc

Vérifier que node s'exécute bien :

node --version

Protocole

L'INSA a déjà un catalogue de formations que l'on peut trouver à l'adresse https://www.insa-lyon.fr/fr/formation/diplomes/ING. Cette page liste les formations de l'INSA puis via un lien pour chaque formation, on accède à la liste des UEs de celle-ci. Pour chaque UE, un pdf détaillant la formation.

L'objectif est d'extraire du site et des pdfs les informations de chaque cours et de constituer une base de données. Dans cette base, on aimerait :

  • Le code. Exemple : TC-4-I-ASY.
  • Le nombre d'ETCS.
  • Le volume horaire de cours / TD / TP / Project / Travail personnel.
  • Plus tard, le contact et son mail

Implémentation

Cloner ce dépot :

git clone https://github.com/dreimert/syd-scraping.git

Ce déplacer dans le dossier:

cd syd-scraping

Installation des dépendances :

npm install

Lancer le code :

node index.js

Tika

Tika est une solution qui permet, entre autre, de convertir un pdf en texte.

Test

Vos yeux. Regardez si les données stockées correspondent à ce qui est indiqué dans le pdf.

Par où commencer ?

  • Il y a des exemples de code dans index.js.
  • Commencez par télécharger un pdf en mémoire.
  • Transformez ce pdf en texte via Tika.
  • Analysez le texte pour en extraire les informations voulues. Les RegExp sont votre amie.
    • /CODE : ([^\n]*)/ : extrait le code du cours.
  • Télécharger et analyser une page de formation.
  • Extraire toutes les UEs d'une formation.
  • Extraire toutes les UEs de l'INSA.

Ce que je dois retenir

Le scraping permet d'extraire des données même sans accès à la base de données. Avec les bonnes technologies de traitement, il est possible de faire en quelques minutes ce qu'un humain mettrait des heures ou jours à faire.

Pour aller plus loin

Extraire plus d'informations comme les pré-requis, les compétences listées... Quelques exemples : https://github.com/sfrenot/competence.

Application en conditions réelles avec des millions d'utilisateurs pour le Covid : https://www.youtube.com/watch?v=_UND6IOeIrM.

About

TD de scraping du cours SYD du département Télécom de l'INSA Lyon

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%