forked from Anri/cal8tor
89 lines
3.1 KiB
TeX
89 lines
3.1 KiB
TeX
\documentclass{article}
|
|
|
|
\usepackage[T1]{fontenc} % encodage
|
|
\renewcommand{\familydefault}{\sfdefault} % police en sans-serif
|
|
|
|
\usepackage[french]{babel} % langue
|
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
|
|
|
\usepackage[hidelinks]{hyperref} % liens cliquable dans la table des matières
|
|
|
|
\usepackage{graphicx} % images
|
|
\usepackage{caption}
|
|
|
|
\usepackage[a4paper, left=20mm, top=20mm]{geometry} % dimensions de la page
|
|
|
|
\usepackage{minted} % intégration code
|
|
\usemintedstyle{emacs}
|
|
|
|
\title{Projet - Scraper}
|
|
\author{\href{mailto:anri.kennel@etud.univ-paris8.fr}{
|
|
Anri Kennel}\thanks{Numéro d'étudiant : 20010664}\, (L3-Y)
|
|
\\Ingénierie des langues $\cdot$ Université Paris 8}
|
|
\date{Année universitaire 2022-2023}
|
|
|
|
\begin{document}
|
|
\maketitle
|
|
\tableofcontents
|
|
\clearpage
|
|
|
|
\section{Projet}
|
|
Dans ce projet j'ai créé un scraper qui récupère les emplois du temps
|
|
des étudiants depuis le site de la licence informatique de Paris 8.
|
|
J'ai ensuite étendu le projet en traitant les données récupérées afin de
|
|
proposer deux résultats :
|
|
\begin{itemize}
|
|
\item un fichier de sortie au format \texttt{.ics}
|
|
\item une sortie dans le terminal sous forme de tableau
|
|
\end{itemize}
|
|
|
|
\section{Implémentation}
|
|
\subsection{Scraper}
|
|
Le programme est écrit en Rust. Pour la partie scraping, j'ai utilisé le module
|
|
\texttt{scraper}. Ensuite pour le traitement des données, j'ai ajouté
|
|
l'utilisation de \texttt{regex}. J'ai aussi utilisé le module \texttt{chrono}
|
|
qui m'as permis de traiter les dates.
|
|
|
|
\subsection{Données récupérées}
|
|
Deux pages sont scrapées par le programme :
|
|
\begin{enumerate}
|
|
\item \label{1} La page d'emploi du temps principal : \url{
|
|
https://informatique.up8.edu/licence-iv/edt/}
|
|
\begin{itemize}
|
|
\item Cette page contient les informations nécessaires pour
|
|
connaître la position temporelle des cours (exemple :
|
|
quelle année ? quel mois commence les cours ? combien de
|
|
temps les cours durent ?)
|
|
\end{itemize}
|
|
\item \label{2} La page qui contient l'emploi du temps : \url{
|
|
https://informatique.up8.edu/licence-iv/edt/CLASSE.html} avec
|
|
\texttt{CLASSE} demandée par l'utilisateur
|
|
\begin{itemize}
|
|
\item Cette page contient l'emploi du temps en tant quel tel, avec
|
|
les noms des matières, des professeurs et les numéros de
|
|
salles.
|
|
\end{itemize}
|
|
\end{enumerate}
|
|
|
|
\begin{itemize}
|
|
\item Le point \no\ref{2} est traité dans un premier temps dans le fichier
|
|
\texttt{src/timetable.rs}
|
|
Les cours ainsi récupérés sont récupérés dans une structure
|
|
\texttt{Course} définie dans \texttt{src/timetable/models.rs}
|
|
\item Le point \no\ref{1} est traité dans un second temps dans le fichier
|
|
\texttt{info.rs}. Elle n'est faite que lorsque l'on veut générer un
|
|
calendrier au format \texttt{.ics}, sinon le repère temporelle
|
|
n'est pas nécessaire.
|
|
\end{itemize}
|
|
|
|
\section{Calendrier}
|
|
\subsection{Fichier}
|
|
|
|
|
|
\subsection{Terminal}
|
|
|
|
|
|
\section{Exemple d'utilisation}
|
|
|
|
|
|
\end{document}
|