cours-2024-2025 | Documents de mes cours pour 2024-2025 | FX Jollois

Séance 3 : Web-scraping avec Python

Dans cette séance, nous allons voir comment récupérer des informations dans une page web, en récupérant son contenu dans Python. Ici, nous avos choisi de récupérer les informations d’une recherche via Google Maps (en particulier un potentiel site web).

Nous ne pouvons pas nous contenter de faire une requête comme précédemment, car beaucoup de serveurs web bloquent les accès de ce type. Pour faire cette opération, nous devons accéder à une page web comme si nous étions un utilisateur classique, en programmant ce qu’on peut appeler un bot. On va utiliser deux packages (à installer donc) :

Pour que selenium fonctionne comme ce qui suit, sous Windows, il est nécessaire d’avoir télécharger l’exécutable chromedriver dans le répertoire de travail de Python. Vous pouvez récupérer les versions stables sur cette page (copier-coller le lien HTML dans la barre du navigateur pour télécharger le fichier).

Première étape : configurer le navigateur

Pour rappel, vous devez placer chromedriver dans le même répertoire que votre notebook (et le bon en fonction de votre OS).

from selenium import webdriver

driver = webdriver.Chrome()

Création de l’URL à récupérer

On créé l’URL de la page qu’on souhaite récupérer. Pour faire une recherche dans Google Maps, il est préférable de mettre le nom de l’établissement, ainsi que les coordonnées géographiques de celui-ci.

base_url = "https://www.google.com/maps/search/"
place_info = "IUT+paris+rives+de+seine"
comp_url = "/@48.8489968,2.3125954,12z"

url = base_url + place_info + comp_url
url
'https://www.google.com/maps/search/IUT+paris+rives+de+seine/@48.8489968,2.3125954,12z'

Deuxième étape : récupération du contenu HTML

Lors de l’exécution de ce code, une instance du navigateur Chrme va s’ouvrir, dans laquelle vous devrez cliquer sur Tout accepter. Cette fenêtre servira pour accéder aux différentes pages web donc.

NE PAS FERMER CETTE FENETRE !

driver.get(url)

Une fois cette fenêtre ouverte, on peut exécuter le code suivant pour effectivement récupérer le contenu désiré.

html = driver.page_source
html

Troisième étape : Recherche de ce qui nous intéresse

Après analyse d’une page Google Maps, à faire dans un navigateur, avec l’inspecteur, ce que nous voulons récupérer est contenu dans la partie Informations. Plus exactement, dans une div dont le paramètre aria-label contient la valeur "Informations".

from bs4 import BeautifulSoup

soup = BeautifulSoup(html)
results = soup.select("div[aria-label*='Informations']")
results
[<div aria-label="IUT de Paris - Rives de Seine - Université Paris Cité - Informations" class="m6QErb XiKgde" role="region" style=""><div jslog="39448;" ve-visible="cf"></div><div jslog="39497;" ve-visible="cf"></div><div class="RcCsl fVHpi w4vB1d NOE9ve M0S7ae AG25L"><div class="OyjIsf"></div><button aria-label="Adresse: 143 Av. de Versailles, 75016 Paris " class="CsEnBe" data-item-id="address" data-tooltip="Copier l'adresse" jsaction="pane.wfvdle34;clickmod:pane.wfvdle34;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="36622; track:click; mutable:true;"><div class="AeaXub"><div class="cXHGnc"><span aria-hidden="true" class="google-symbols PHazN" style="font-size: 24px;"></span></div><div class="rogA2c"><div class="Io6YTe fontBodyMedium kR99db fdkmkc">143 Av. de Versailles, 75016 Paris</div><div class="gSkmPd fontBodySmall CuiGbf DshQNd"></div></div></div></button><div class="UCw5gc"><div class="C9yzub"><div class="etWJQ kdfrQc NUqjXc"><button aria-label="Copier l'adresse" class="g88MCb S9kvJb" data-tooltip="Copier l'adresse" data-value="Copier l'adresse" jsaction="pane.wfvdle35;keydown:pane.wfvdle35;mouseover:pane.wfvdle35;mouseout:pane.wfvdle35;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="38087;track:click;mutable:true;"><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols G47vBd SwaGS" style="font-size: 18px;"></span></span></button></div></div></div></div><div class="OqCZI fontBodyMedium WVXvdc" jslog="36914;metadata:WyIwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE4QmNJQXlnQSJd"><div aria-expanded="false" class="OMl5r hH0dDd jBYmhd" data-hide-tooltip-on-mouse-move="true" jsaction="pane.openhours.wfvdle36.dropdown; keydown:pane.openhours.wfvdle36.dropdown" jslog="14925;track:click,keydown_click;mutable:true;metadata:WyIwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE4QmNJQXlnQSJd" role="button" tabindex="0"><div class="OyjIsf"></div><span aria-label="Horaires" class="LT79uc google-symbols PHazN" role="img" style="font-size: 24px;"></span><div class="MkV9"><div class="o0Svhf"><span class="ZDu9vd"><span><span style="font-weight: 400; color: rgba(25,134,57,1.00);">Ouvert</span><span style="font-weight: 400;"> ⋅ Ferme à 19:00</span></span></span> <span aria-label="Afficher les horaires d'ouverture pendant la semaine" class="puWIL hKrmvd google-symbols OazX1c" role="img" style="font-size: 18px;"></span></div></div></div><div aria-label="jeudi, de 07:45 à 19:00; vendredi, de 07:45 à 19:00; samedi, de 07:45 à 12:30; dimanche, Fermé; lundi, de 07:45 à 19:00; mardi (Réveillon de Noël), de 07:45 à 19:00, Les horaires peuvent être modifiés.; mercredi (Jour de Noël), de 07:45 à 19:00, Les horaires peuvent être modifiés.. Masquer les horaires d'ouverture pendant la semaine" class="t39EBf GUrTXd"><div><table class="eK4R0e fontBodyMedium"><tbody><tr class="y0skZc"><td class="ylH6lf fontTitleSmall"><div>jeudi</div></td><td aria-label="de 07:45 à 19:00" class="mxowUb" role="text"><ul class="fontTitleSmall"><li class="G8aQO">07:45–19:00</li></ul></td><td class="HuudEc"><button aria-label="jeudi, de 07:45 à 19:00, Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="jeudi, 07:45–19:00" jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>vendredi</div></td><td aria-label="de 07:45 à 19:00" class="mxowUb" role="text"><ul><li class="G8aQO">07:45–19:00</li></ul></td><td class="HuudEc"><button aria-label="vendredi, de 07:45 à 19:00, Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="vendredi, 07:45–19:00" jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>samedi</div></td><td aria-label="de 07:45 à 12:30" class="mxowUb" role="text"><ul><li class="G8aQO">07:45–12:30</li></ul></td><td class="HuudEc"><button aria-label="samedi, de 07:45 à 12:30, Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="samedi, 07:45–12:30" jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>dimanche</div></td><td aria-label="Fermé" class="mxowUb" role="text"><ul><li class="G8aQO">Fermé</li></ul></td><td class="HuudEc"><button aria-label="dimanche, Fermé, Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="dimanche, Fermé" jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>lundi</div></td><td aria-label="de 07:45 à 19:00" class="mxowUb" role="text"><ul><li class="G8aQO">07:45–19:00</li></ul></td><td class="HuudEc"><button aria-label="lundi, de 07:45 à 19:00, Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="lundi, 07:45–19:00" jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>mardi</div><div class="GfF3rf">(Réveillon de Noël)</div></td><td aria-label="de 07:45 à 19:00, Les horaires peuvent être modifiés." class="mxowUb" role="text"><ul><li class="G8aQO">07:45–19:00</li></ul><div class="GfF3rf"> <span class="zdqHHd">Les horaires peuvent être différents</span></div></td><td class="HuudEc"><button aria-label="mardi (Réveillon de Noël), de 07:45 à 19:00, Les horaires peuvent être modifiés., Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="mardi (Réveillon de Noël), 07:45–19:00, Les horaires peuvent être modifiés." jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr><tr class="y0skZc"><td class="ylH6lf"><div>mercredi</div><div class="GfF3rf">(Jour de Noël)</div></td><td aria-label="de 07:45 à 19:00, Les horaires peuvent être modifiés." class="mxowUb" role="text"><ul><li class="G8aQO">07:45–19:00</li></ul><div class="GfF3rf"> <span class="zdqHHd">Les horaires peuvent être différents</span></div></td><td class="HuudEc"><button aria-label="mercredi (Jour de Noël), de 07:45 à 19:00, Les horaires peuvent être modifiés., Copier les horaires d'ouverture" class="mWUh3d" data-hide-tooltip-on-mouse-move="true" data-tooltip="Copier les horaires d'ouverture" data-value="mercredi (Jour de Noël), 07:45–19:00, Les horaires peuvent être modifiés." jsaction="pane.openhours.wfvdle36.copy; focus:pane.focusTooltip; blur:pane.blurTooltip"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="GYnni google-symbols G47vBd" style="font-size: 18px;"></span></button></td></tr></tbody></table><div class="onOnO"><div class=""><button aria-label="Suggérer une modification des horaires d'ouverture" class="M77dve" jsaction="pane.wfvdle37" jslog="119438;track:click;mutable:true;metadata:WyIwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE4QmNJQXlnQSJd"><div class="BgrMEd cYlvTc VOgY4"><div class="OyjIsf zemfqc"></div><span class="wNNZR fontTitleSmall">Suggérer de nouveaux horaires</span></div></button></div></div></div></div><div class="z6qSc GUrTXd"><div><div></div><div class="uLQcoc"></div></div></div></div><div class="RcCsl fVHpi w4vB1d NOE9ve M0S7ae AG25L"><div class="OyjIsf"></div><a aria-label="Site Web: iutparis-seine.u-paris.fr " class="CsEnBe" data-item-id="authority" data-tooltip="Accéder au site Web" href="https://iutparis-seine.u-paris.fr/" jsaction="pane.wfvdle38;clickmod:pane.wfvdle38;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="3443; track:click; mutable:true;metadata:W251bGwsIixBT3ZWYXcwUWNzQWRUa0ZvcGZuMW9ZaHhtbkZ3LCwwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE2MWdJRXlnTywiXQ=="><div class="AeaXub"><div class="cXHGnc"><span aria-hidden="true" class="google-symbols PHazN" style="font-size: 24px;"></span></div><div class="rogA2c ITvuef"><div class="Io6YTe fontBodyMedium kR99db fdkmkc">iutparis-seine.u-paris.fr</div><div class="gSkmPd fontBodySmall CuiGbf DshQNd"></div></div></div></a><div class="UCw5gc"><div class="C9yzub"><div class="etWJQ kdfrQc NUqjXc"><a aria-label="Accéder au site Web" class="lcr4fd S9kvJb" data-tooltip="Accéder au site Web" data-value="Accéder au site Web" href="https://iutparis-seine.u-paris.fr/" jsaction="pane.wfvdle39;keydown:pane.wfvdle39;mouseover:pane.wfvdle39;mouseout:pane.wfvdle39;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="38093;track:click;mutable:true;metadata:W251bGwsIixBT3ZWYXcwUWNzQWRUa0ZvcGZuMW9ZaHhtbkZ3LCwwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE2MWdJRXlnTywiXQ=="><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols G47vBd SwaGS" style="font-size: 18px;"></span></span></a></div><div class="etWJQ kdfrQc NUqjXc"><button aria-label="Copier le site Web" class="g88MCb S9kvJb" data-tooltip="Copier le site Web" data-value="Copier le site Web" jsaction="pane.wfvdle40;keydown:pane.wfvdle40;mouseover:pane.wfvdle40;mouseout:pane.wfvdle40;focus:pane.focusTooltip;blur:pane.blurTooltip"><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols G47vBd SwaGS" style="font-size: 18px;"></span></span></button></div></div></div></div><div class="RcCsl fVHpi w4vB1d NOE9ve M0S7ae AG25L"><div class="OyjIsf"></div><button aria-label="Numéro de téléphone: 01 76 53 47 00 " class="CsEnBe" data-item-id="phone:tel:0176534700" data-tooltip="Copier le numéro de téléphone" jsaction="pane.wfvdle41;clickmod:pane.wfvdle41;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="18491; track:click; mutable:true;metadata:WyIwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFFfZG9CQ0JBb0RBIl0="><div class="AeaXub"><div class="cXHGnc"><span aria-hidden="true" class="google-symbols NhBTye PHazN" style="font-size: 24px;"></span></div><div class="rogA2c"><div class="Io6YTe fontBodyMedium kR99db fdkmkc">01 76 53 47 00</div><div class="gSkmPd fontBodySmall CuiGbf DshQNd"></div></div></div></button><div class="UCw5gc"><div class="C9yzub"><div class="etWJQ kdfrQc NUqjXc"><button aria-label="Copier le numéro de téléphone" class="g88MCb S9kvJb" data-tooltip="Copier le numéro de téléphone" data-value="Copier le numéro de téléphone" jsaction="pane.wfvdle42;keydown:pane.wfvdle42;mouseover:pane.wfvdle42;mouseout:pane.wfvdle42;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="38097;track:click;mutable:true;"><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols G47vBd SwaGS" style="font-size: 18px;"></span></span></button></div><div class="etWJQ kdfrQc NUqjXc"><a aria-label="Composer le numéro de téléphone" class="lcr4fd S9kvJb" data-tooltip="Composer le numéro de téléphone" data-value="Composer le numéro de téléphone" href="tel:0176534700" jsaction="pane.wfvdle43;keydown:pane.wfvdle43;mouseover:pane.wfvdle43;mouseout:pane.wfvdle43;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="38096;track:click;mutable:true;metadata:WyIwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFFfZG9CQ0JBb0RBIl0="><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols SwaGS" style="font-size: 18px;"></span></span></a></div></div></div></div><div class="RcCsl fVHpi w4vB1d NOE9ve M0S7ae AG25L"><div class="OyjIsf"></div><button aria-label="Plus code: R7R9+R4 Paris" class="CsEnBe" data-item-id="oloc" data-tooltip="Copier le plus code" jsaction="pane.wfvdle44;clickmod:pane.wfvdle44;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="27644; track:click; mutable:true;"><div class="AeaXub"><div class="cXHGnc"><span aria-hidden="true" class="google-symbols PHazN" style="font-size: 24px;"></span></div><div class="rogA2c"><div class="Io6YTe fontBodyMedium kR99db fdkmkc">R7R9+R4 Paris</div><div class="gSkmPd fontBodySmall CuiGbf DshQNd"></div></div></div></button><div class="UCw5gc"><div class="C9yzub"><div class="etWJQ kdfrQc NUqjXc"><button aria-label="Copier le plus code" class="g88MCb S9kvJb" data-tooltip="Copier le plus code" data-value="Copier le plus code" jsaction="pane.wfvdle45;keydown:pane.wfvdle45;mouseover:pane.wfvdle45;mouseout:pane.wfvdle45;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="55025;track:click;mutable:true;"><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols G47vBd SwaGS" style="font-size: 18px;"></span></span></button></div><div class="etWJQ kdfrQc NUqjXc"><button aria-label="En savoir plus sur les plus codes" class="g88MCb S9kvJb" data-tooltip="En savoir plus sur les plus codes" data-value="En savoir plus sur les plus codes" jsaction="pane.wfvdle46;keydown:pane.wfvdle46;mouseover:pane.wfvdle46;mouseout:pane.wfvdle46;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="27021;track:click;mutable:true;"><span class="DVeyrd"><div class="OyjIsf zemfqc"></div><span aria-hidden="true" class="Cw1rxd google-symbols SwaGS" style="font-size: 18px;"></span></span></button></div></div></div></div></div>]

Pour récupérer l’adresse du site web, s’il y en a un, encore une fois après recherche via l’inspecteur, nous cherchons plus exactement la balise a dont le paramètre aria-label contient la valeur "Site Web".

results = soup.select("a[aria-label*='Site Web']")
results
[<a aria-label="Site Web: iutparis-seine.u-paris.fr " class="CsEnBe" data-item-id="authority" data-tooltip="Accéder au site Web" href="https://iutparis-seine.u-paris.fr/" jsaction="pane.wfvdle38;clickmod:pane.wfvdle38;focus:pane.focusTooltip;blur:pane.blurTooltip" jslog="3443; track:click; mutable:true;metadata:W251bGwsIixBT3ZWYXcwUWNzQWRUa0ZvcGZuMW9ZaHhtbkZ3LCwwYWhVS0V3aVgycnZfbnJPS0F4V0pWS1FFSFo0aEtINFE2MWdJRXlnTywiXQ=="><div class="AeaXub"><div class="cXHGnc"><span aria-hidden="true" class="google-symbols PHazN" style="font-size: 24px;"></span></div><div class="rogA2c ITvuef"><div class="Io6YTe fontBodyMedium kR99db fdkmkc">iutparis-seine.u-paris.fr</div><div class="gSkmPd fontBodySmall CuiGbf DshQNd"></div></div></div></a>]

Pour avoir exactement l’adresse, on récupère le lien web (contenu dans la balise href) du premier résultat obtenu précédemment.

results[0]["href"]
'https://iutparis-seine.u-paris.fr/'

Dernière étape : fermeture du navigateur

Une fois qu’on a récupéré tout ce qu’on souhaite (donc une fois l’exécution complète du bot), il est préférable de fermer correctement le navigateur, surtout si votre code est prévu pour s’exécuter en arrière plan sur un serveur.

driver.close()

A FAIRE

A partir du fichier StockEtablissement_utf8_1000__complété.csv sur les 1000 premiers établissements, dans lequel nous avons ajouté les coordonnées géographiques, vous devez chercher, pour chaque établissement, s’il existe un site web et récupérer l’adresse. Toutes les URL seront au final stockées dans une nouvelle variable, website, ajouté à toutes les autres informations.

import pandas

df = pandas.read_csv("StockEtablissement_utf8_1000__complété.csv")
df
siren nic siret statutDiffusionEtablissement dateCreationEtablissement trancheEffectifsEtablissement anneeEffectifsEtablissement activitePrincipaleRegistreMetiersEtablissement dateDernierTraitementEtablissement etablissementSiege ... etatAdministratifEtablissement enseigne1Etablissement enseigne2Etablissement enseigne3Etablissement denominationUsuelleEtablissement activitePrincipaleEtablissement nomenclatureActivitePrincipaleEtablissement caractereEmployeurEtablissement latitude longitude
0 325175 16 32517500016 O 2000-09-26 NaN NaN 3212ZZ 2015-03-18T00:58:59 False ... F NaN NaN NaN NaN 32.12Z NAFRev2 N 49.220518 6.015168
1 325175 24 32517500024 O 2008-05-20 NaN NaN NaN 2011-12-12T09:40:04 False ... F TAHITI PERLES CREATIONS NaN NaN NaN 47.89Z NAFRev2 N 43.938190 4.882656
2 325175 32 32517500032 O 2009-05-27 NaN NaN NaN 2014-07-08T00:10:21 False ... F TAHITI PERLES CREATIONS NaN NaN NaN 32.12Z NAFRev2 N 43.932374 4.844274
3 325175 40 32517500040 O 2011-10-21 NaN NaN 3212ZZ 2015-03-18T00:58:59 False ... F TAHITI PERLES CREATION NaN NaN NaN 32.12Z NAFRev2 N 43.280158 5.623075
4 325175 57 32517500057 O 2014-01-07 NaN NaN NaN 2018-07-10T14:17:15 False ... F TAHITI PERLES CREATION NaN NaN NaN 32.12Z NAFRev2 N 43.299866 5.397044
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
994 5742028 29 574202800029 O 2002-01-01 NN NaN NaN 2013-12-11T08:50:11 False ... F NaN NaN NaN NaN 01.11Z NAFRev2 N 44.115767 6.010904
995 5742036 14 574203600014 O NaN NaN NaN NaN NaN True ... F NaN NaN NaN NaN 69.22 NAP N 44.179140 5.947317
996 5742093 15 574209300015 O NaN NaN NaN NaN 2019-08-25T12:02:35 True ... F NaN NaN NaN NaN 62.43 NAP N 44.197272 5.944793
997 5742101 16 574210100016 O 1900-01-01 NN NaN NaN 2019-11-14T14:00:14 True ... F NaN NaN NaN NaN NaN NaN N 44.427401 6.435844
998 5742176 18 574217600018 O NaN NaN NaN NaN NaN True ... F NaN NaN NaN NaN 00.97 NAP N 44.197636 5.945917

999 rows × 50 columns