Remplir automatiquement son auto-relevé de compteur

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 :

pip install selenium

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 :

python lampiris.py 7373

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

Première formulaire de saisie

# 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

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()