ich möchte gerne Aktienkurse mit Python auslesen und im nächsten Schritt auch auswerten. Allerdings stecke ich noch ganz am Anfang und möchte erst einmal Beautifulsoup besser verstehen und kennen lernen.
Dabei bin ich auf folgenden Blog Post gestoßen:
https://ingo-janssen.de/web-scraping-in ... n-sammeln/
In dem angeleiteten Beispiel werden allerdings nur die ISIN und der Aktienname gescraped.
Hier mal der Code aus dem Beispiel:
Code: Alles auswählen
import requests, bs4, json
url = 'https://www.boerse.de/realtime-kurse/Dax-Aktien/DE0008469008'
seite = requests.get(url)
bs4_seite = None
if seite.status_code == 200:
bs4_seite = bs4.BeautifulSoup(seite.content, 'html.parser')
else:
print('Seite konnte nicht geladen werden.', url)
pushList = bs4_seite.find('table', {'id': 'pushList'})
body = pushList.find('tbody')
aktien_liste = body.find_all('tr')
daten = {}
for aktie in aktien_liste:
isin = aktie['id']
div = aktie.find('div', {'class': 'tablesorter N'})
link = div.find('a')
daten[isin] = {
'name': link.text,
'url': link['href']
}
print(json.dumps(daten, indent=4))
Mein Problem dabei ist allerdings das es die Bezeichnung hinter div class= "tablesorter green BW_PUSH" zweimal gibt. Einmal für die Spalte +/- und einmal für +/-%. Wie kann ich diese Spalten mit BeautifulSoup unterscheiden.
Als nächstes tue ich mich schwer damit das der Wert nicht wie in dem Beispiel des Blogbeitrages direkt in der <div Zeile vorkommt sondern eine Zeile darunter hinter dem <span.
Wie muss ich damit weiter umgehen um den Wert auszulesen?
Vielen dank schon mal an jeden der sich die Mühe macht mir zu helfen.