cours-2023-2024 | Documents de mes cours pour l'année 2023-2024 | FX Jollois
Pour lire le fichier StockEtablissement
, nous utilisons la librarie pandas
nrows = 10
pour lire uniquement les 10 premières lignesskiprows = range(1, 6)
permet de ne pas prendre en considération les lignes 1 à 5 (et donc de garder la ligne d’en-têtes - noms de colonnes)import pandas
sirene = pandas.read_csv("StockEtablissement_utf8_1000.csv", nrows = 10)
sirene
Le dataframe étant trop large, toutes les colonnes ne sont pas affichées. Pour avoir les colonnes contenant l’adresse, nous pouvons sélectionner celles-ci directement, comme ci-dessous par exemple
sirene[["siren", "siret", "numeroVoieEtablissement", "indiceRepetitionEtablissement",
"typeVoieEtablissement", "libelleVoieEtablissement",
"codePostalEtablissement", "libelleCommuneEtablissement",
"libelleCommuneEtrangerEtablissement"]]
Pour stocker le résultat, il faut écrire dans un fichier (nous allons garder le format csv
).
index = False
permet de ne pas avoir l’index des lignes (inutile dans notre cas)header = False
permet de ne pas ajouter les noms des colonnesmode = "a"
(pour append) permet d’ajouter des lignes à un fichier, sans écraser ce qu’il y a déjà dedanssirene.to_csv("export.csv", index = False)
A partir d’une adresse (par exemple, le 143 Avenue de Versailles, Paris), nous allons chercher les coordonnées géographiques de ce lieu.
Pour cela, nous avons besoin du package requests
(généralement déjà présent).
import requests
adresse = "143+avenue+Versailles+paris"
url = "https://api-adresse.data.gouv.fr/search/"
recherche = url + "?q=" + adresse
reponse = requests.get(recherche)
reponse
Si le résultat est <Response [200]>
, c’est que tout est OK. Sinon, se reporter à la liste des erreurs
On peut ensuite récupérer les résultats au format JSON
reponse.json()
Dans notre cas, il y a plusieurs résultats. Généralement, le premier est celui avec le score
le plus élevé.
selenium
et bs4
(BeautifulSoup) pour Pythonchromedriver
(selon votre OS)Vous devez placer chromedriver
dans le même répertoire que votre notebook
from selenium import webdriver
driver = webdriver.Chrome()
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
driver.get(url)
html = driver.page_source
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
results = soup.select("div[aria-label*='Informations']")
results
results = soup.select("a[aria-label*='Site Web']")
results
Pour avoir exactement l’adresse, on récupère le texte du premier résultat obtenu précédemment
results[0].text
Mais on peut aussi vouloir récupérer le lien web (dans href
)
results[0]["href"]
driver.close()