Certains fournisseurs d’énergie permettent d’effectuer un auto relevé via leur
site web. Remplir le formulaire n’est pas compliqué mais à chaque fois, il faut
retrouver l’url, son numéro de point de collecte… Bref le candidat parfait à
l’automatisation !
C’est là qu’intervient
Selenium. Cette librairie permet de
contrôler un navigateur web depuis Python.
Installation de selenium
Il vous faut bien évidemment un navigateur. Nous utiliserons Firefox.
Selenium s’installe facilement avec pip :
Le script
La variable PDL
contient votre identifiant de compteur (point de livraison).
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
import time
import sys
from selenium import webdriver
# client number
PDL=123456789
# Get index value from command line
try:
index = int(sys.argv[1])
except ValueError:
print('Not a valid numbre - gas_index:', sys.argv[1])
sys.exit(1)
# Open lampiris site
browser = webdriver.Firefox()
browser.implicitly_wait(10)
browser.maximize_window()
browser.get('https://www.lampiris.fr/espace-client/releve-de-compteur')
# find list
meter_type = browser.find_element_by_id('edit-meter-type')
# select gas option in list meter_type
for option in meter_type.find_elements_by_tag_name('option'):
if 'GAS' in option.get_attribute('value'):
option.click()
break
# fill PDL id
meter_id = browser.find_element_by_id('edit-meter-id-pce')
meter_id.send_keys(PDL)
# click to next page
submit = browser.find_element_by_id('edit-next')
submit.click()
# fill gas index and click
gas_index = browser.find_element_by_id('edit-gas-index--2')
gas_index.send_keys(index)
submit = browser.find_element_by_id('edit-submit--2')
submit.click()
time.sleep(5)
browser.quit()
Utilisation
Dorénavant pour envoyer votre estimation à votre fournisseur, il suffit de lancer le script avec
votre relevé de compteur en paramètre :
Fonctionnement
Détaillons le programme ci-dessus par bloc fonctionnel.
Import des librairies utiles
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
import time
import sys
from selenium import webdriver
# client number
PDL=123456789
Récupération de l’index du compteur
Passé en argument sur la ligne de commande. On vérification que ça ressemble
bien à un entier.
# Get index value from command line
try:
index = int(sys.argv[1])
except ValueError:
print('Not a valid numbre - gas_index:', sys.argv[1])
sys.exit(1)
Utilisation de Selenium pour ouvrir pour une page
# Open lampiris site
browser = webdriver.Firefox()
browser.implicitly_wait(10)
browser.maximize_window()
browser.get('https://www.lampiris.fr/espace-client/releve-de-compteur')
Remplir le premier formulaire
# find list
meter_type = browser.find_element_by_id('edit-meter-type')
# select gas option in list meter_type
for option in meter_type.find_elements_by_tag_name('option'):
if 'GAS' in option.get_attribute('value'):
option.click()
break
# fill PDL id
meter_id = browser.find_element_by_id('edit-meter-id-pce')
meter_id.send_keys(PDL)
Et on clique pour passer à la page suivante :
# click to next page
submit = browser.find_element_by_id('edit-next')
submit.click()
Remplir le second formulaire
# fill gas index and click
gas_index = browser.find_element_by_id('edit-gas-index--2')
gas_index.send_keys(index)
submit = browser.find_element_by_id('edit-submit--2')
submit.click()
time.sleep(5)
browser.quit()