Dynamische Webseite parsen.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Schlangenmensch
User
Beiträge: 73
Registriert: Freitag 18. Februar 2022, 10:13

Guten Morgen,

auch wenn ich hier vermutlich nicht im richtigen Thread bin, wollte ich Euch kurz um Hilfe bitten.

Ich würde von einer Seite gerne täglich den Kurs von einem Aktien-Fond abrufen und in einer Tabelle speichern.

Da mir HTML noch fremder ist als phyton, wollte ich kurz fragen, ob es mit folgendem Code überhaupt möglich ist den dynamischen Wert auszulesen bzw. welche "HTML-Tags" ich verwenden müsste um an die Informationen heranzukommen.

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup

URL = 'https://www.boerse-frankfurt.de/fonds/meag-fairreturn'

response = requests.get(URL)
#print(response.text)

soup = BeautifulSoup(response.text, 'html.parser')
kurs_data = soup.find('span', {'attribut-name': '_ngcontent-boerse-frankfurt-c135'})

print(kurs_data)
Benutzeravatar
__blackjack__
User
Beiträge: 14000
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Schlangenmensch: Das hängt vom konkreten HTML ab in welchen Tags die Informationen stecken die Du haben möchtest. Und neben HTML und CSS braucht man hier auch ein Verständnis von HTTP und eventuell ein bisschen JavaScript, denn bei der URL im Quelltext kommen erst einmal gar keine Daten. Die werden wohl dynamisch mit JavaScript nachgeladen. Da müsste man schauen in welchem Format und woher.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Schlangenmensch
User
Beiträge: 73
Registriert: Freitag 18. Februar 2022, 10:13

Vielen Dank für die Antwort.

Ich habe bereits befürchtet, dass es nicht so einfach sein wird wie in einem Tutorial beschrieben wird.

In der Zwischenzeit bin ich auf das Modul "selenium" gestossen, welches Java-Scripte ausführt und sich in python verwenden lassen soll.

Wird wohl viel Arbeit für mich bis ich mich da einigermaßen herangetastet habe.


Schönen Tag noch.
Benutzeravatar
Kebap
User
Beiträge: 772
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Üblicherweise muss sich dafür nicht jeder Leser selbst ein Programm schreiben, das die Webseiten kompliziert ausliest.
Sondern der Betreiber der Webseite bietet die Daten außerdem maschinenlesbar über eine API an, ggf. kostenpflichtig.
Andere Betreiber wollen die Daten vielleicht gar nicht bereitstellen und wehren sich sogar aktiv gegen Auslesen der Webseiten.
Bei der Börse sehe ich aber eine API und sie schreiben sogar, dass manche Funktionen kostenlos direkt nach Registrierung vorliegen:
https://www.deutsche-boerse.com/dbg-de/ ... i-platform
Also hier musst du dich nicht mit HTTP, HTML, CSS; Java Script, usw. herumschlagen, sondern "nur" mit dem normalen Robot Trading.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Wenn es darum geht Börsendaten auszulesen, ist sicherlich auch yfinance einen Blick wert. Damit erhältst du deine Daten mit wenigen Zeilen Code und musst dich nicht selbst um die Website kümmern.
Schlangenmensch
User
Beiträge: 73
Registriert: Freitag 18. Februar 2022, 10:13

Leider erhalte ich von Yfiinance je nach Produkt nur Daten bis 2014, selbst nachdem ich yfinance upgedatet habe (Version "....2022")

Ich werde mir dann wohl doch den anderen Weg ansehen.

Vielen Dank füe Euere Antworten.
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Schlangenmensch hat geschrieben: Donnerstag 27. Juni 2024, 08:06 Ich würde von einer Seite gerne täglich den Kurs von einem Aktien-Fond abrufen und in einer Tabelle speichern.
Gemäß dieser Anforderung reicht dir doch ein Tag aus. Du rufst den jeweiligen Kurs täglich ab, speicherst ihn und fertig.
Schlangenmensch
User
Beiträge: 73
Registriert: Freitag 18. Februar 2022, 10:13

Leider erhalte ich immer die Fehlermeldung: ['A0RFJW.DE']: YFPricesMissingError('$%ticker%: possibly delisted; No price data found (1d 2024-06-01 -> 2024-06-02)'). Wenn ich das Jahr in 2016 ändere, funktioniert es einwandfrei.

Deshalb meine Vermutung, dass yfinance nicht mehr aktuell gehalten wird.

Code: Alles auswählen

import yfinance as yf

data = yf.download("A0RFJW.DE", start="2024-06-03", end="2024-06-04")


print(data)
Benutzeravatar
__blackjack__
User
Beiträge: 14000
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Schlangenmensch: Über das `Ticker`-Objekt kommt auf die Daten die auch auf der Webseite angezeigt werden.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten