Aktienkurse anzeigen

RudiP

Well-known member
Da ich mich erdreistet hatte, mal einen Anteil an einer Tesla Aktie zu erwerben, würde ich nun gerne auch den aktuellen Kurs auf HA anzeigen lassen.
Avanza Stock ist einem da ja sofort aufgefallen. Läuft auch, aber da die Daten von der Schwedischen Börse kommen, haben die nur Tesla Aktien in US Dollar.
Dann habe ich Scrape gesehen, womit man wohl auch die Daten von boerse.de bekommen könnte, aber trotz Simon24 bekomme ich keine Werte.
In der configuration.yaml habe ich folgenden Eintrag:
Code:
scrape:
  - resource: https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014
    sensor:
      - name: Tesla Aktie
        select: "#US88160R1014 > td.alignright > div > span > span"
Den Select habe ich, wie von Simon beschrieben, im Browser F12, dann die Zeile mit dem Kurs suchen, rechtsklick, kopieren. selector kopieren und dann in der configuration.yaml eingetragen.
Nach einem Neustart ist zwar der Sensor da, aber leider "unavailable"

Was mach ich da falsch ? Jemand ne Idee ?
 
Hallo @RudiP,

ich habe ja nicht viel Ahnung davon.
Aber nimm mal bei Select die #Raute raus.
Vielleicht liegt es daran.
# heißt ja immer, dass der Wert nicht abgefragt werden soll.
 
Edit, ergänzend, Du hast auch value_template vergessen, wirf kurz nen halben Blick hier rein: https://www.heimnetz.de/anleitungen...assistant-externe-html-daten-per-url-abrufen/

Und ja, da steht auch diese Art der Identifikation von CSS-Selektoren, aber, man kann jedes Element auf viele verschiedene Weisen ansprechen, und Dein zuerst verwendeter Selektor identifiziert damit direkt zwei Elemente, zudem ist es wahrscheinlich, dass so eine nichtssagende ID häufiger wechselt.
 
Mal davon abgesehen, das ich mich frage, wie Du Nival auf diesen Selektor kommst, funktioniert es leider immer noch nicht.
Muß man HTML gelernt haben, um den richtigen Selektor zu bekommen ? Einfach mit den Entwicklertools des Browser kommt wohl was falsches.

Mein aktueller Code:
Code:
scrape:
  - resource: https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014
    sensor:
      - name: "Aktie-Tesla"
        select: '.kurszeile .col-sm-4:first-of-type .BW_PUSH .pushRed'
        value_template: '{{ value }}'

Das Vorgehen in dem Link, den Du geschickt hast, ist exakt das, was ich gemacht habe. Nur bekomme ich dann halt den Selektor, den ich oben habe. Wobei, bei "kopieren" gibt es auch kein "CSS selector", da steht nur noch "selector kopieren".
Keine Ahnung, ob das nun was anderes ist.

Ich habe es jetzt auch mal mit MultiScrape versucht, aber leider auch hier "unavailable"
 
Tja... machst Du unerwünschte Dinge, kriegst Du auch unerwünschte Dinge zurück. Sag ich jetzt einfach mal so. Als einfaches Beispiel schau Dir mal die Ausage von curl https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014 an. Ja, es wird HTML-Code ausgeliefert, aber interessant ist dann eher das, was dort an Text steht. Das ganze steckt wohl nochmal hinter Cloudflare und die scheinen Dir diesbezüglich auf die Finger zu klopfen und sagen "Nö!". Ich zitiere mal ein wenig:
<title>Attention Required! | Cloudflare</title>
<h1 data-translate="block_headline">Sorry, you have been blocked</h1>
<h2 class="cf-subheadline"><span data-translate="unable_to_access">You are unable to access</span> boerse.de</h2>
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>

Hängt man allerdings einen User-Agent an (so wie es die normalen Browser eben auch machen), würde der Befehl wie folgt lauten:
curl --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0" https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014

Damit bekommst Du dann auch die korrekte HTML-Ausgabe. Da das nun recht viel ist, könnte man natürlich noch hingehen und etwas filtern, z.B. in Form von:
curl --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0" https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014 | find "price"

Dabei kommen dann allerdings noch immer 2 Zeilen bei rum, wobei man dann einfach nochmal filtern kann, sieht dann so aus:
curl -s --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0" https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014 | find "price" | find "content"

Allerdings haben wir noch die Download-Anzeige und das ganze Geraffel dabei, da kommt dann noch die Option "-s" (silent) ins Spiel:
curl -s --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0" https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014 | find "price" | find "content"

Nun hätte man zumindestens schon mal die Zeile mit den korrekten Werten und könnte diese dann noch entsprechend weiterverarbeiten, aber das ist ja vermutlich nicht unbedingt das, was Du Dir so vorgestellt hast, oder? 😅

Naaaaa gut... (😜) dann versuch es doch einfach mal so:
YAML:
scrape:
  - resource: https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014
    sensor:
      - name: "Aktie-Tesla"
        select: '.kurszeile .col-sm-4:first-of-type .BW_PUSH .pushRed'
        value_template: '{{ value }}'
    headers:
      User-Agent: Mozilla/5.0

Falls das nicht funktioniert, musst Du den User-Agent vollständig angeben, da wäre die aktuelle FF-Version dann eben so anzugeben:
YAML:
scrape:
  - resource: https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014
    sensor:
      - name: "Aktie-Tesla"
        select: '.kurszeile .col-sm-4:first-of-type .BW_PUSH .pushRed'
        value_template: '{{ value }}'
    headers:
      User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0

Falls das nicht will (Sonderzeichen), ggf. den User-Agent-Wert nochmal in Anführungszeichen setzen - aber probier es erstmal ohne :)
 
So....

1747495623567.png

... wat zahlste? 🤪 🤣

Ich hab dann jetzt einfach mal so gemacht, wie ich dachte (halt keine Ahnung von nix und so) und schlussendlich sieht es bei mir dann vom YAML-Code her so aus:

YAML:
  - resource: "https://www.boerse.de/aktien/Tesla-Aktie/US88160R1014"
    headers:
      User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0"
    sensor:
      - name: "test"
        select: ".kurszeile > div:nth-child(1) > span:nth-child(1) > span:nth-child(1)"

Scheint zu funktionieren... Langzeit-Test ist dann bei Dir fällig 😁
 
Yes, der Code scheint erst mal zu funktionieren.
Jetzt würde mich noch Interessieren, wie man den zu dem SELECT kommt.
Muss ich HTML Studieren ?
 
Steht doch alles hier: https://www.heimnetz.de/anleitungen...assistant-externe-html-daten-per-url-abrufen/ :unsure:

Also... ich habe den Firefox genutzt. Seite aufrufen, F12 für die Dev-Tools öffnen.

Unten bei den Dev-Tools ganz links das Icon auswählen (Kasten mit dem Mauszeiger). Damit dann das entsprechend gewünschte auswählen und darunter im Code erscheint dann automatisch die passende Zeile. Das sieht dann bei mir so aus:

1747505471811.png

Rechtsklick auf die unten angezeigte Zeile, kopieren -> CSS-Selektor. Das ist dann genau jener Teil, welcher bei meinem Versuch beim Select-Teil steht :) Du hattest da etwas ganz anderes stehen, ebenso wie Nival, vermutlich führen allerdings viele Wege nach Rom, ich denke aber, dass das primäre Problem wohl echt die Sache mit dem User-Agent war, denn ohne Angabe des User-Agents macht die Seite (bzw. Cloudflare) auch direkt dicke Backen und nix geht.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.685
Beiträge
64.159
Mitglieder
6.946
Neuestes Mitglied
StefanK
Zurück
Oben