Web Scrapping

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
Bl3nder
User
Beiträge: 139
Registriert: Freitag 3. Januar 2020, 17:07

Hallo Leute,

Ich würde gerne Daten von einer Webseite laden nur egal wie Ich es versuche und nach welchem Tutorial Ich es auch versuche klappt es nicht ... da Ich wahrscheinlich zu dumm bin könnte mir das eventuell erklären Ich kommen leider nicht richtig weiter.


Internetseite:
https://www.deka.de/privatkunden/fondssuche

Ich möchte gerne die Namen


Code:

Code: Alles auswählen

from bs4 import BeautifulSoup
import requests


html_code = requests.get("https://www.deka.de/privatkunden/fondssuche").text
soup = BeautifulSoup(html_code,"html.parser")

fonds = soup.find_all("div",class_="tab-content")

print(fonds)

danach weiß ich nicht weiter Ich kenne mich auch 0 mit Java oder html aus ... Ich weiß das man mit BeautifulSoup arbeiten kann / soll wenn die Seite nicht dynamisch arbeitet ... da Ich nicht weiß was das richtig ist -> Ich glaube da wird Serverseitig dann mit Javascripts gearbeitet habe Ich versuch überhaupt zu verstehen woran Ich das erkenn ( ob eine Seite dynamisch arbeitet) "Dynamische Webseiten sind an Parametern wie “?”, “=” oder „&“ in der URL zu erkennen. Es gilt dabei: wird auf solchen Seiten der Inhalt geändert oder ergänzt, ändert sich auch die URL. Laut Suchmaschinen-Betreibern können URLs mit Parametern mittlerweile von Suchmaschinen ausgelesen werden." das wäre also in meinem Fall nicht so Ich hoffe ihr könnt mir helfen ... Ich danke euch
Eine Vision ohne Aktion bleibe eine Illusion
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Bl3nder,

du hast das Problem eigentlich schon erkannt. Fast alle modernen Webseiten sind dynamisch aufgebaut. Sie erkennen die Größe deines Bildschirms und ändern das Layout entsprechend um dir den Inhalt möglichst übersichtlich anzuzeigen. Das heißt, dass die Seite unter Umständen ganz anders aufgebaut ist als du es erwartest.
Wenn du jetzt mit requests.get() den HTML-Code lädst wird der Inhalt höchstwahrscheinlich anders sein als das was du im Browser sehen würdest.

Oft werden Daten auch erst nachgeladen während sich die Seite aufbaut. Das Nachladen der Daten geschieht oft durch Javascript-Code der in die Seite eingebettet ist.
Das kann man sich zu Nutze machen...

Wenn du im Browser F12 drückst öffnet sich die Debug Konsole.
Du kannst jetzt das Netzwerk-Tab anwählen und noch einmal die Seite neu laden. Die siehst wie die Seite durch verschiedene Serveranfragen aufgebaut wird.

Wenn man sich ein bischen auskennt wird man die Anfrage finden, die die Fondsdaten nachläd.

Sie enthält die entsprechende url und Queryparameter.
Die wiederum kannst du in deine request.get() Anfrage einbauen, die Query-Parameter einstellen und dann bekommst eine lange Liste der Fondsdaten.

BeautifulSoup ist nur für statische Seiten geeignet und ist hierfür auch gar nicht nötig, da die Daten als JSON-String zurückgegeben werden.
Bl3nder
User
Beiträge: 139
Registriert: Freitag 3. Januar 2020, 17:07

Ich danke dir für die Antwort jedoch bringt mich das nicht weiter Ich lasse es dann einfach bleiben trotzdem vielen Dank
Eine Vision ohne Aktion bleibe eine Illusion
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Bist du eigentlich sicher, dass du "scrapping" und nicht "scraping" meinst? Das unterscheidet sich von der Bedeutung her schon.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@/me: Das ist ein ziemlich häufiger Fehler. Immer wenn ich den sehe, denke ich es harkt. 😉
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Als Leihe sind das alles bohemische Dörfer für mich!
Antworten