Dann versuche ich mal genau zu erklären wie ich die gesuchten Elemente finde.
Den Preis finden::
Ich öffne die Webseite mit Firefox (andere Browser können das auch). Drücke
Strg+Shift+C. Die Entwicklerkonsole vom Browser öffnet sich. Nun wähle ich das gesuchte Element aus.
In der Quelltextbox sehe ich, dass der Preis aufgeteilt ist in Franken und Rappen. Alle gesuchten Preisinformationen sind in:
Also speichere ich mir dies erst einmal:
Der 1.Teil vom Betrag ist zu finden unter:
Diesen Teil kann ich dann finden mit:
Code: Alles auswählen
preis.find("span", class_="range-revamp-price__integer").text
Der Betrag hinter dem Komma finde ich in diesem Teil:
Code: Alles auswählen
<span class="range-revamp-price__separator">.</span>
00
Das gesuchte ist erst nach dem Span zu finden, also finde ich es mit:
Code: Alles auswählen
preis.find("span", class_="range-revamp-price__separator").next_sibling
Die Anzahl des Artikel würde sich verstecken unter:
Code: Alles auswählen
<span class="range-revamp-price__unit">/ 4 Stück</span>
Und wie man den Preis nun zusammenfügt, sollte klar sein. Es ist aber besser diesen Betrag als Cent/Rappen zu speichern, damit man nicht mit Float-Beträge rechnen muss.
Die Artikel_Kategorie finden::
Browser öffnen und Element so auswählen, dass der komplette Produkt-Pfad gefunden wird.
Nun sehe ich, dass der Pfad komplett zu finden ist in:
Code: Alles auswählen
<ol class="bc-breadcrumb__list" data-breadcrumb-links="">
Also speichere ich mir dies erstmal ab:
Code: Alles auswählen
pfad_angaben = doc.find("ol", class_="bc-breadcrumb__list")
Nun möchte ich in dieser Html-Liste alle Elemente finden. Jedes Element hat als
class_="bc-breadcrumb__list-item", also kann ich folgendes versuchen:
Code: Alles auswählen
for pfad in pfad_angaben.find_all("li", class_="bc-breadcrumb__list-item"):
print(pfad.text.strip())
'''Ausgabe:
Produkte
Möbel
Betten
Bettbeine
BRENNÅSEN Bein'''
Ich hoffe die erklärung ist hilfreich und das vorgehen ist soweit nachvollziehbar.