Académique Documents
Professionnel Documents
Culture Documents
DU 01/05/2023
AU 30/06/2023
C’est un grand plaisir que nous réservons cette page en signe de notre sincère
gratitude envers tous ceux qui nous ont aidés de près ou de loin au bon
déroulement de ce travail.
Nous tenons à remercier spécialement notre encadreur interne Mr Ouazzani
Taybi Ilyass qui avec un grand dévouement, a consacré beaucoup de temps à
suivre de près l’évolution de notre projet et nous a réservé les conditions
saines de travail, pour ses directives constructives et l’aide précieuse qu’il nous
a apportée. Nous avons le plaisir d’exprimer nos vifs remerciements aux
personnels de la société YOORIKA, pour leur hospitalité et à notre encadreur
Mr Noufal Sahafi et Mr Essalhi Khalid qui avec un grand dévouement, a
consacré beaucoup de temps à suivre de près l’évolution de notre projet et
nous réserve les conditions saines de travail, pour ses directives constructives à
l’aide précieuse qu’il nous a apporté.
A notre chef de filière :
Mr QAFFOU Issam
Pour son dévouement et son extrême gentillesse.
Aux membres de jury
&
A tous nos enseignants :
Qui jugeront ce projet, ou ils y trouveront l’expression de nos grandes
considérations et nos grands respects.
1
Dédicaces
Sincèrement nous dédions notre profond respect envers tous nos condisciples
et nos amis, ainsi à tous les étudiants avec qui nous avons passé de bons
moments, et tous qui nous ont aidés de près ou de loin dans la réalisation de
ce rapport.
2
Résumé
Ce rapport est le fruit du travail que nous avons réalisé dans le cadre de notre
stage au cours du projet effectué au sein de l’entreprise « YOORIKA
Management ».
Pour réaliser cela, nous avons développé un système de scraping avancé qui
collecte automatiquement les informations pertinentes des pages web de
Booking.com, telles que les noms des établissements, les descriptions, les
images, les points forts, etc. Ces données sont ensuite stockées dans une base
de données centrale.
Le site web que nous avons créé offre une interface utilisateur intuitive où les
utilisateurs peuvent effectuer des recherches en fonction de leurs critères
spécifiques, tels que la ville et le type. Les résultats de recherche affichent une
liste d'options d'hébergement avec des informations détaillées et des photos,
permettant aux utilisateurs de comparer les différentes offres.
3
Table des matières
Dédicaces…………………………………………………………………..............................2
Résumé………………………………………………………………….................................3
Table des matières……………………………………………………………………………5
Liste des figures……………………………………………………………………………....6
Chapitre 1 : Introduction général du projet et l’entreprise…………………………………...7
1.Organisme d’accueil……...………………………………………………………...8
2.Présentation du projet………………………………………………………………9
3.Définition de scraping de base de données…………………………………………9
4.Techniques de scraping de base de données………………………………………..9
Chapitre 2 : Contexte et problématique……………………………………………………..11
1.Contexte…………………………………………………………………………...12
2.Problématique……………………………………………………………………..13
3.Analyse de besoins………………………………………………………………..13
Chapitre 3 : Conception…………………………………………………..............................16
1.Introduction…………………………………………………….............................17
2.UML………………………………………………………………………………17
3.Merise……………………………………………………………………………..22
Chapitre 4 : Scraping de base de données…………………………………………………..24
Chapitre 5 : Architecture de site…………………………………………………………….28
4
Table des figures :
5
Chapitre 1
Introduction générale
L’organisme d’accueil
Présentation du projet
Définition de scraping de base de données
Techniques de scraping de base de données
________________________________________________________
6
1. Organisme d’accueil :
7
2. Présentation du projet :
8
Chapitre 2
Contexte et problématique
Contexte
Problématique
Analyse de besoins
________________________________________________________
9
1. Contexte :
L'agence web YOORIKA Management a entrepris la création d'un site d'hébergement
dédié au Maroc afin de répondre à la demande croissante dans le secteur du
tourisme. Étant donné que le Maroc est une destination prisée par de nombreux
visiteurs, il était nécessaire de mettre en place une plateforme centralisée
permettant aux voyageurs de trouver aisément des hébergements dans différentes
régions du pays. Pour cela, nous avons utilisé des techniques de scraping pour
collecter des données à partir du site booking.com, une référence en matière de
réservations d'hébergements. Ainsi, sur notre site, nous proposons aux utilisateurs
des liens directs vers booking.com, où ils peuvent finaliser leurs réservations en toute
confiance.
10
2. Problématique :
11
Chapitre 3
Analyse de besoin
12
Pour la création d'un portail d’hébergement utilisant la fonction de Scraping de la
base des données de booking.com, il est essentiel de définir les besoins fonctionnels
et non fonctionnels de site.
Les besoins fonctionnels :
Recherche d'hébergements : Les utilisateurs doivent pouvoir effectuer des
recherches d'hébergements en fonction de critères tels que la ville et le type
d'hébergement, etc.
Affichage des résultats de recherche : Les résultats de recherche doivent être
présentés de manière claire et structurée, en fournissant des informations
pertinentes sur chaque hébergement, telles que le nom, la localisation, les
commodités, etc.
Consultation des détails de l'hébergement : Les utilisateurs doivent pouvoir accéder
aux informations détaillées de chaque hébergement, y compris les photos, la
description, etc.
Gestion des réservations : Les utilisateurs doivent pouvoir gérer leurs réservations,
telles que la modification, l'annulation, ou la consultation de l'historique des
réservations.
13
Évolutivité : Le site doit être conçue de manière à pouvoir gérer une augmentation
du nombre d'utilisateurs et de l'offre d'hébergements sans compromettre ses
performances.
Adaptabilité : Le site doit être adaptée à différents appareils et résolutions d'écran,
offrant une expérience utilisateur cohérente sur les ordinateurs de bureau, les
tablettes et les smartphones.
14
Chapitre 4
Conception
Introduction
UML
Merise
________________________________________________________
15
2. Introduction :
La conception est une étape primordiale dans le cycle de vie d’un site, il a pour
objectif de faire l’étude des données et des traitements à effectuer.
C’est en général dans cette phase que s’appliquent les techniques de
modélisation.
3. UML :
16
Figure 2:Diagramme de cas d'utilisation d'utilisateur
Description textuelle :
Gérer les critères de recherche : L'utilisateur peut effectuer une recherche d'hôtels
en spécifiant des critères tels que la ville et le type d’hébergement.
Filtrer résultats : L'utilisateur peut filtrer les résultats de la recherche en fonction de
critères supplémentaires tels que le review.
Afficher détails : L'utilisateur peut afficher les détails d'un hôtel spécifique, y compris
les photos, etc.
Gérer réservations : L'utilisateur peut gérer ses réservations d'hôtels, y compris la
consultation, la modification ou l'annulation de réservations existantes.
17
Figure 3:Diagramme de cas d'utilisation de panneau d'administration
Description textuelle :
18
2.2Diagramme de classe :
2.3Diagramme de séquence :
19
Figure 5:Diagramme de séquance de site
20
3 Merise :
3.1 MCD :
Le modèle conceptuel des données (MCD) a pour but d’écrire de façon formelle les
données qui seront utilisées par notre système d’information. Il s’agit donc d’une
représentation des données, facilement compréhensible, permettant de décrire
notre système d’information à l’aide d’entité.
21
3.2 MLD :
22
Chapitre 5
23
1. Scraping de site booking.com:
Scraping basé sur HTTP : Cette technique consiste à envoyer des requêtes HTTP à un
serveur web pour récupérer le contenu HTML des pages. Ensuite, le scraping se fait
en analysant et en extrayant les données souhaitées à partir de la structure HTML.
Scraping via des API : Certaines bases de données fournissent des API (interfaces de
programmation) qui permettent d'accéder aux données de manière structurée. En
utilisant les méthodes et les endpoints fournis par l'API, il est possible d'extraire les
données directement au format JSON, XML ou d'autres formats spécifiques.
Scraping basé sur des requêtes SQL : Si vous avez accès à une base de données via
une interface SQL, vous pouvez utiliser des requêtes SQL pour extraire les données
souhaitées. Cela peut être utile lorsque vous avez besoin d'extraire des données
spécifiques en fonction de certaines conditions ou critères.
Scraping de fichiers structurés : Si les données que vous souhaitez extraire sont
stockées dans des fichiers structurés tels que des fichiers CSV, Excel ou JSON, vous
pouvez utiliser des bibliothèques de programmation appropriées pour lire ces
fichiers et extraire les données nécessaires.
Scraping avec des outils spécialisés : Il existe également des outils spécialement
conçus pour le scraping de base de données. Ces outils offrent des fonctionnalités
avancées pour extraire automatiquement les données à partir de différentes sources
de données sans avoir à écrire de code.
24
Pour le scraping de site booking.com on a choisi le langage python et PHP comme
langage de back end et html, css et javascript comme langage de front end.
Pour le langage python, il existe des bibliothèques qui aide pour le scraping d’un
site web et la connections au base de données parmi eux :
Mysql.connecter : Le module mysql.connector fournit la
méthode connect qui permet de retourner un objet qui représente la
connexion vers la base de données. Vous devez fournir les
paramètres host, user et password pour donner l’adresse du SGBDR, le
login et le mot de passe de connexion. Vous pouvez également fournir le
paramètre database pour indiquer quelle base de données vous souhaitez
utiliser.
25
2. Panneau d’administrations :
Tout d'abord, nous avons créé une page de tableau de bord qui fournit un
aperçu clair et concis des statistiques importantes du système. Cela permet aux
utilisateurs d'obtenir rapidement des informations essentielles sur l'état global du
projet.
Ensuite, nous avons mis en place une page dédiée à la gestion des catégories.
Cette page permet à l'utilisateur d'ajouter et de supprimer des catégories spécifiques
à l'hébergement. Grâce à cette fonctionnalité, l'utilisateur peut facilement organiser
les différentes options d'hébergement disponibles dans notre système.
Une autre fonctionnalité essentielle que nous avons développée est la page
des pays. Cette page permet aux utilisateurs d'ajouter de nouveaux pays et de
spécifier les villes correspondantes. Ainsi, l'utilisateur peut créer une liste complète
des pays couverts par notre projet, en y associant les villes spécifiques où
l'hébergement est disponible.
Enfin, nous avons conçu une page de scraping qui s'est révélée être un outil
précieux pour collecter et stocker des données importantes. Cette page est dotée
d'un formulaire qui comprend des champs pour l'URL, l'identifiant d'aide, ainsi que
des sélecteurs pour la catégorie, le pays et la ville. L'utilisateur peut entrer les
informations requises, puis en cliquant sur le bouton "OK", notre système exécute
une fonction de scraping qui collecte les données des liens fournis. Ces données sont
ensuite stockées dans une table de base de données pour être ultérieurement
affiché dans notre site.
26
utilisateurs d'obtenir rapidement des informations essentielles sur l'état global du
projet.
Ensuite, nous avons mis en place une page dédiée à la gestion des catégories.
Cette page permet à l'utilisateur d'ajouter et de supprimer des catégories
spécifiques à l'hébergement. Grâce à cette fonctionnalité, l'utilisateur peut
facilement organiser les différentes options d'hébergement disponibles dans
notre système.
Une autre fonctionnalité essentielle que nous avons développée est la page
des pays. Cette page permet aux utilisateurs d'ajouter de nouveaux pays et de
spécifier les villes correspondantes. Ainsi, l'utilisateur peut créer une liste
complète des pays couverts par notre projet, en y associant les villes
spécifiques où l'hébergement est disponible et leurs images.
27
Enfin, nous avons conçu une page de scraping qui s'est révélée être un outil
précieux pour collecter et stocker des données importantes. Cette page est
28
dotée d'un formulaire qui comprend des champs pour l'URL, l'identifiant d'aid,
ainsi que des sélecteurs pour la catégorie, le pays et la ville. L'utilisateur peut
entrer les informations requises, puis en cliquant sur le bouton "OK", notre
système exécute une fonction de scraping qui collecte les données des liens
fournis. Ces données sont ensuite stockées dans une table de base de données
pour être ultérieurement affiché dans notre site.
29
Chapitre 6
Architecture de site
30