Seite 1 von 1

Beautifulsoup und HTML

Verfasst: Freitag 19. Juni 2020, 12:11
von Python1967
Guten Tag,
Ich hatte die Idee einen Währungsrechner zu programmieren bloß hab ich da ein kleines Problem wo ich leider nicht weiter komme.
Ich habe es geschafft das der aktuelle Währungskurs ausgegeben wird bloß schaff ich es nicht den ausgegebenen Währungskurs mit der gewünschten Geldmenge zu multiplizieren.

Hier ist mein code den ich geschrieben habe:

import urllib.request
import requests
from bs4 import BeautifulSoup

url = "https://www.onvista.de/devisen/"

r = requests.get(url)

html_content = r.text
soup = BeautifulSoup(html_content, "html.parser")


for tr in soup.find_all('tr'):
tds = soup.find_all('td')

#currency = []

print("Euro/USD: %s \nEuro/Schweitzer Franken: %s\nEuro/Türkische Lira: %s\n" %\
(tds[3].text, tds[24].text, tds[116].text))

money = int(input("Geben Sie Ihre Geldmenge in Euro ein: "))



Habe schon versucht es zu printen aber es hat mir sehr oft Fehler angezeigt. (Tag und int können nicht multipliziert werden).

Hoffentlich kann mir jemand helfen.

Re: Beautifulsoup und HTML

Verfasst: Freitag 19. Juni 2020, 12:54
von Sirius3
Was hast Du denn versucht, und wie ist die exakte Fehlermeldung?

Du mußt den Inhalt des Tags in eine Zahl umwandeln, sonst kann man das nicht multiplizieren.
Die kryptischen Indizes bei tds sind sehr fragil, heiß, das kann auch leicht kaputt gehen, parse die Tabelle der Wechselkurse richtig.
Wenn dich sowieso nur die letze tr-Zeile interessiert, dann ist die for-Schleife unsinnig.

Re: Beautifulsoup und HTML

Verfasst: Freitag 19. Juni 2020, 13:30
von Python1967
Wie soll ich denn die Tabelle richtig parsen. Da ich echt noch ein Neuling bin hab ich nicht so ein großes wissen.

Re: Beautifulsoup und HTML

Verfasst: Freitag 19. Juni 2020, 13:56
von __blackjack__
@Python1967: Halt richtig die Tabelle auswerten was da drin steht und nicht einfach so magische Zahlen wie 3, 24, und 116 verwenden von denen Du *hoffst* das da auch morgen noch die Werte für USB, Schweizer Franken, und Türkische Lira drin stehen.

Re: Beautifulsoup und HTML

Verfasst: Freitag 19. Juni 2020, 14:04
von __blackjack__
Kleiner Nachtrag: die ``for``-Schleife ist noch unsinniger als Sirius3 vermutet hat, denn da werden so oft es <tr> gibt immer *alle* <td> im gesamten Dokument zusammengesucht weil die Laufvariable der äusseren Schleife überhaupt gar nicht verwendet wird. WTF. Und noch mal eine ganze Ecke fragiler ist das auch noch!