Multiscrape, extraire une image d'un tableau

System Information

version core-2023.11.2
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.59
arch x86_64
timezone Europe/Brussels
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4916
Installed Version 1.33.0
Stage running
Available Repositories 1331
Downloaded Repositories 12
Home Assistant Cloud
logged_in true
subscription_expiration 18 novembre 2023 à 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
remote_server eu-central-1-14.ui.nabu.casa
certificate_status ready
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 11.1
update_channel stable
supervisor_version supervisor-2023.11.0
agent_version 1.6.0
docker_version 24.0.6
disk_total 439.4 GB
disk_used 10.4 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons ESPHome (2023.10.6), File editor (5.6.0), Terminal & SSH (9.8.0), Home Assistant Google Drive Backup (0.111.1), Mosquitto broker (6.3.1), Zigbee2MQTT (1.33.2-1), SQLite Web (3.10.0), MQTT Explorer (browser-1.0.1), FTP (4.7.3), Studio Code Server (5.14.2)
Dashboards
dashboards 3
resources 6
views 13
mode storage
Recorder
oldest_recorder_run 11 novembre 2023 à 07:17
current_recorder_run 14 novembre 2023 à 10:41
estimated_db_size 119.99 MiB
database_engine sqlite
database_version 3.41.2
Spotify
api_endpoint_reachable ok

Bonjour

J’essaye d’extraire une image d’une cellule d’un tableau avec l’intégration multiscraping

site:

Tarif officiel des produits pétroliers | SPF Economie

selecteur css

sous firefox pour td : tr.ui-widget-content:nth-child(1) > td:nth-child(3)
ou sous chrome: #petrolTable_data > tr:nth-child(1) > td:nth-child(3)

sous firefox pour img: tr.ui-widget-content:nth-child(1) > td:nth-child(3) > img:nth-child(1)
ou sous chrome: #petrolTable_data > tr:nth-child(2) > td:nth-child(3) > img
ce que j’ai mis

- name: carburant_tendance
  resource: "https://economie.fgov.be/fr/themes/energie/prix-de-lenergie/prix-maximum-des-produits/tarif-officiel-des-produits"
  scan_interval: 3600
  sensor:
    - unique_id: carburant_tendance
      select: "[itemtype='http://data-vocabulary.org/Organization'] h1"
      value_template: "{{ value }}"
      attributes:
        - name: carburant_tendance_sp95_e10
          select: "#petrolTable_data > tr:nth-child(1) > td:nth-child(3) > img"
          attribute: "src"
          value_template: "{{ '/config' + value }}"
        - name: carburant_tendance_sp98_e5
          select: "#petrolTable_data > tr:nth-child(2) > td:nth-child(3) > img"
          attribute: "src"
          value_template: "{{ '/config' + value }}"
        - name: carburant_tendance_diesel_b7
          select: "#petrolTable_data > tr:nth-child(3) > td:nth-child(3) > img"
          attribute: "src"
          value_template: "{{ '/config' + value }}"
        - name: carburant_tendance_date
          select: ".mylabel:nth-child(2) span"
          value_template: "{{ value.split(' ')[0] }}"

Mais cela ne fonctionne pas, aucune donnée ou image extraite. Erreur de sélecteur ou de template ? blocage du site ?

Fichiers images dans /config/img.

Merci

Salut!

Il y a un piège… Les informations que tu recherches ne sont pas dans ta resource, mais dans une iframe.
Essaie ça et adapte le à ton besoin :

- name: carburant_tendance
  resource: "https://petrolprices.economie.fgov.be/petrolprices/?locale=fr"
  scan_interval: 3600
  sensor:
    - unique_id: carburant_tendance_sp95_e10
      select: "#petrolTable_data > tr:nth-child(1) > td:nth-child(3) > img"
      attribute: "src"
      value_template: "{{ '/config/' + value }}"
    - name: carburant_tendance_date
      select: "#petrolTable > div.ui-datatable-header.ui-widget-header.ui-corner-top > span:nth-child(2)"
      value_template: "{{ value }}"
1 « J'aime »

Merci beaucoup, effectivement, je suis tombé dans le piège.

Ah force de me plonger dans HA, j’en oublie mes automatismes HTML.

Salut,

Une autre soluce potentielle c’est de travailler directement sur la tendance du sensor dans HA (pour voir si le tarif monte ou pas)