Sie sind auf Seite 1von 5

Un détour par le Web : comment fonctionne un

site ?
Un site Web est un ensemble de pages codées en HTML qui permet de décrire à la fois
le contenu et la forme d’une page Web.

HTML
Les balises
Sur une page web, on trouve toujours à coup sûr des éléments comme < head>, <
title>, etc. Il s’agit des codes qui vous permettent de structurer le contenu d’une page
HTML et qui s’appellent des balises.

Citons, par exemple, les balises < p>, < h1>, < h2>, < h3>, < strong> ou < em>.

Le symbole < > est une balise : il sert à indiquer le début d’une partie. Le symbole < >
indique la fin de cette partie.

La plupart des balises vont par paires, avec une «balise ouvrante» et une «balise
fermante». (par exemple < p> et < /p>).

Parent et enfant
Dans le cadre du langage HTML, les termes de parents (parent) et enfants (child)
servent à désigner des élements emboîtés les uns dans les autres

Dans la construction suivante, par exemple :

< div>

< p>

Bla,Bla

< /p>

< /div>

On dira que l’élément < div> est le parent de l’élément < p> tandis que l’élément < p> est
l’enfant de l’élément < div>.
Mais pourquoi apprendre ça pour scraper ?

Pour bien récupérer les informations d’un site internet, il faut pouvoir comprendre sa structure et
donc son code HTML. Les fonctions python qui servent au scrapping sont principalement
construites pour nous permettre de naviguer entre les balises ,Pour cela nous allons utiliser la
syntaxe XPath et Css Selector qui nous permet de récupérer les données stocker au travers une
page web.

Définition 1 (XPath) : XPath pour XML path language fournit une syntaxe pour identifier et
localiser des fragments de documents XML ou dans des documents HTML. Il décrit des chemins
à prendre pour aller de la racine ou d’un noeud "local" vers le noeud recherché en suivant les
filiations.

Définition 2 (Css selector) : Un sélecteur CSS peut être défini comme étant une chaîne de
caractères (ensemble de mots-clés et/ou de symboles), qui permet d'identifier les éléments qui
vont profiter du style CSS. Chaque sélecteur pointe vers un endroit précis de la page Web.

Pour copier le XPath d’un élément précis dans une page web, par exemple le titre d’un produit dans
amazon.com, il suffit d’ouvrir l’outil des développeurs de notre navigateur web, ensuite faire un click
droit sur l’élément qui nous intéresse, et dans le menu on choisi inspecter. Cela mettre en exergue
l’élément inspecté par rapport à l’arborescence HTML (voir exemple figure 1).
Figure 1 – Outils des développeurs de chrome. L’outil permet d’inspecter/accéder aux éléments HTML
de la page web courante.

Afin de vérifier si le XPath que nous avons copié est intègre, on peut le tester dans une console
JavaScript comme c’est décrit dans le code ci-dessous et la figure
2
Pour construire notre scraper de données, nous utiliserons la librairie Scrapy . Cette librairie écrite en
python, fournit un ensemble de fonctionnalités orientée objets qui nous permettront de spécifier le type
de données que nous souhaitons télécharger, de créer un scraper en fournissant un lien en entrée,
d’extraire les données et analyser la syntaxe de la structure retournée avec un parser, et enfin de se
connecter à une base de données pour y stocker les données collectés

Vue d'ensemble de l'architecture Scrapy:

Figure 3 : Scrapy's architecture

On remarque peut-être trois types d’objets familiers sur lesquels cette architecture fonctionne;

Requests, responses et Items. Nos spider sont au cœur de l'architecture.

Ils créent des demandes, traitent les réponses, génèrent des items et plus de demandes.

Chaque item généré par un spider est post-traité par une séquence de pipelines d'éléments.
en utilisant leur méthode process_item ().typiquement Process_item () modifie généralement les
éléments

et les passe aux pipelines suivants en les renvoyant. Occasionnellement (pour

exemple, dans le cas de données dupliquées ou non valides), il peut être nécessaire de supprimer un
élément,

et nous le faisons en générant une exception DropItem. Dans ce cas, les pipelines suivants

ne le recevra pas. Si nous fournissons également un open_spider () et / ou close_spider ()

méthode, il sera appelé sur le spider ouverte et fermée, respectivement. C'est une opportunité

pour les initialisations et les nettoyages. Les items pipelines sont généralement utilisés pour résoudre
des problèmes

opérations de domaine ou d’infrastructure, telles que le nettoyage des données ou l’insertion des items
dans bases de données. Vous vous retrouverez également à les réutiliser en grande partie entre les
projets

Nous entamons notre synthèse en étudiant les différentes techniques existantes pour explorer

le Web. Tout d’abord le crawling ayant pour objectif de comprendre l’organisation du Web puis le

scraping qui s’attarde sur la récupération de données dans un environnement stable