Ich probiere gerade, den Ölpreis über ein Scrape auszulesen.
Er zeigt mir dann aber nur Unbekannt an.
Die Resource ist: https://energieshop.totalenergies.de/bestellung/?zip_code=68309&quantity=2000&submitButton=Preis+berechnen&num_deliveries=1
Unter auswählen habe ich für das Öl Premium thermoplus: #tns1-item0
Hat da jemand noch eine Idee, was ich da falsch mache?
EDIT:
ich sehe gerade ich bekomm ein Logeintrag dazu:
Failed to set state for sensor.olpreis, fall back to unknown
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1227, in _async_write_ha_state
hass.states.async_set_internal(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
entity_id,
^^^^^^^^^^
...<5 lines>...
time_now,
^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/core.py", line 2364, in async_set_internal
state = State(
entity_id,
...<8 lines>...
timestamp,
)
File "/usr/src/homeassistant/homeassistant/core.py", line 1808, in __init__
validate_state(state)
~~~~~~~~~~~~~~^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 237, in validate_state
raise InvalidStateError(
...<2 lines>...
)
homeassistant.exceptions.InvalidStateError: Invalid state with length 2276. State max length is 255 characters.
Also ich verstehe, dass hier die Länge wohl zu lang ist, aber das passt ja irgendwie nicht zu dem Preis.
Die Stelle im Formular ist schon richtig.
Dort wo bei Dir “#tns1-item0” steht, muss der CSS-Tag des gesuchtes Wertes rein.
Da diese Tags auf öfter vorkommen können, fügts Du das den gesamten CSS-Pfad ein.
Den bekommst Du über die Developer Tools Deines Browsers raus. Meist mit F12 zu öffnen.
Unter Firefox muss man den Wert markieren, dann in den Tools einen rechtsklick auf dem Tag machen und Kopieren → CSS-Pfad auswählen. In Chrome geht das bestimmt auch ähnlich.
ok, ich habs mit Chrom probiert, aber da finde ich css-Pfad nicht. Aber ich hab auch Firefox. Damit hab ich jetzt auf jedenfall mal den gleichen wert wie du “herausgefunden”.
Problem ist jetzt aber, auch wenn ich diesen Wert
html body main section section div.stage-order div.container-semiFull.container-cards.bg-canvas div.container.canvas-overlay.gradient-10-red div.tabs-tariff-cards-inner div.slider-holder div#tns1-ow.tns-outer div#tns1-mw.tns-ovh div#tns1-iw.tns-inner div#tns1.tariffCardSlider.tns-slider.tns-carousel.tns-subpixel.tns-calc.tns-horizontal div#tns1-item0.item-tariff-card.g-col-12.g-col-md-4.g-col-xl-3.tns-item.tns-slide-active div.tariff-card.recommended.border-red div.card.d-flex div.card-head div.text-gradient.gradient-text-red div.h1
komplett bei Auswählen einfüge steht der Sensor auf unbekannt:
Ich habe die Erfahrung gemacht, dass sich nicht alles aus jeder Seite auslesen lässt. Für meine Pellets habe ich drei verschiedene Seiten probiert, ehe ich auch tatsächlich Daten auslesen konnte.
Ferner meine ich, die Daten unter “Auswählen” sind nicht richtig. Sieht bei mir, allerdings andere Webseite, anders aus…
jetzt bin ich echt total verwirrt ich hatte es am Anfang eigentlich genau mit dem von dir geposteten Teil probiert, da es nicht geklalppt hatte, hatte ich alles hinter item0 entfernt.
Hab jetzt noch einmal deinen Code genommen jetzt kommt tatsächlich der Wert raus.
Keine Ahnung warum es dann beim allerersten mal nicht funktioniert hat.