Beautiful Soup Tutorial: Web Scraper mit Python bauen
HTML-код
- Опубликовано: 10 сен 2024
- In diesem Tutorial werden wir uns anschauen, wie man mit Web Scraping beliebige Daten aus dem Internet extrahieren kann. Dazu benutzen wir das kostenlose Python Modul "Beautiful Soup" zum Scrapen der Inhalte. Wir starten von Anfang an, du kannst also mit minimalem Vorwissen mitmachen (deutsch)
⯈ Python Schnellstart-Kurs - Ein Anfänger-Kurs, um frustfrei Python zu lernen: bit.ly/python-s...
---------------
Weitere Ressourcen für Programmier-Anfänger:
⯈ Du willst auch Programmieren Lernen? Diese 3 einfachen Schritte solltest Du jetzt ausführen:
1. ⭐ Hol Dir jetzt die ultimative Programmierer-Toolbox: 21+ Apps,
Cheatsheets, Quellcodes, Tools, Downloads und Ratgeber für
Programmier-Anfänger... für immer kostenlos:
⯈ bit.ly/lernepro...
2. ⭐ Abonniere jetzt den LerneProgrammieren RUclips-Kanal, um als Erster
über neue Videos und Tutorials benachrichtigt zu werden:
⯈ www.youtube.co...
3. ⭐Schaue in unserer Community vorbei. Dort helfen sich Anfänger
gegenseitig das Programmieren zu lernen:
⯈ / lerneprogrammieren
⭐ Weitere Tutorials & Artikel: lerneprogrammie...
⭐ Beste Programmierkurse für Anfänger:
⯈ LerneProgrammieren CodeLabor 12+ Programmier-Kurse für Anfänger: bit.ly/codelabor
⯈ LerneProgrammieren Anfängerkurs (Videokurs): bit.ly/anfänger...
Ich würde das script nun gerne automatisiert 1x pro Tag laufen lassen. Wie stelle ich das an? Bzw. wo muss ich nachschauen?
Ich hab das Script wie vorgegeben eingetippt. Bei mir aber er fängt bei der Ausgabe an mit (nach den 2 print-statements):
"[INFO] Starting Chromium download.
0%| | 0.00/137M [00:00
Er muss zunächst einen Chromium (Browser) herunterladen, bevor es weitergeht.
@@lerneprogrammieren-de Danke für die Anwort, aber ich habe bereits Chromium installiert, neben Firefox und arbeite mit beiden Browsern...
mit window10 hat es funktioniert. win11 streikt bei mir. Hast Du eine lösung?
Ich hänge bei 18:52 fest. Wenn ich den Code laufen lasse, bekomme ich ständig die Fehlermeldung "from requests_html import HTMLSession - No module named 'requests_html'. Ich habe aber requests_html installiert und auch schonmal neu installiert, aber leider funktioniert es immer noch nicht. Ich bitte um Hilfe...
das grundprinzip wird klar. danke fürs hochladen.
pycharme meldet: from requests_html import HTMLSession ModuleNotFoundError: No module named 'requests_html'
in der dos-box geht es...
In pycharm muss das Modul "requests_html" ebenfalls nachinstalliert werden :-)
Hab das ganze geschaut. Vielen Dank!
Hallo,
bereits beim Theme Importieren stoße ausschließlich auf Probleme. request_html ist nicht bekann, trotz installation auf meinem Rechner. Starte ich die IDE neu, werden mir die Funktionen, das Paket enthält gar nicht angezeigt. Höchstens requests. Vielleicht findet sich hier ein weiterbringender Hinweis, denn die Einleitung war recht gut. Von einem anderen Tutorial wurden Daten nur mit Request und BeautifulSoup gezogen und bearbeitet. Aber hier tritt das Dilemma auf, dass das System bei bestimmten Klassen nur none als Ergebnis anzeigt, was Unsinn ist.
Hi Daniel,
kannst du mir deine Fehlermeldungen, Screenshot per Mail an support@lerneprogrammieren.de schicken? Dann schauen wir uns das mal gemeinsam an :-)
Beste Grüße
Arek
@@lerneprogrammieren-de Gab es hier eine Lösung für das Problem?
@@helmsitv1086 Solltest du Pycharm nutzen, versuche es im Pycharm Terminal zu installieren. Pycharm laueft wohl in einer virtuellen Umgebung weswegen du keinen Zugriff auf die im cmd installierten Packages hast. Hat bei mir funktioniert
Sehr schön erklärt.
Wie setze ich das nun für alle videos um statt nur für das erste?
Was muss ich dafür anpassen in dem skript?
Hey ich habe das Problem, dass mein page1.html.render() nie fertig ist. Ich habe Test-Prints dazwischen eingebaut aber er kommt nie in der Print nach dem Render. Habe jetzt schon einiges probiert aber es klappt alles nicht. Würde mich über hilfe freuen.
Ohne deinen Code zu sehen ist es schwer zu sagen warum die render()-Funktion nicht durchläuft. Du kannst deinen Code mal auf pastebin.com/ einfügen und mit den Link an support@lerneprogrammieren.de schicken.
Hallo, als ich die Results printen wollte kam wärend dem scraping-Prozess folgende Fehlermeldung:
Future exception was never retrieved
future:
pyppeteer.errors.NetworkError: Protocol error Target.detachFromTarget: Target closed.
Future exception was never retrieved
future:
pyppeteer.errors.NetworkError: Protocol error (Target.sendMessageToTarget): No session with given id
Ich habe alles genauso gemacht wie im Video, gibt es irgendeine Lösung?
Hab dir schon per Mail auf deiner Supportanfrage geantwortet :-)
@@lerneprogrammieren-de bei mir kommt der selbe Fehler. Könntest du die Lösung dazu irgendwo zu Verfügung stellen?
ich habe das Problem das ich die daten einer "span" abfragen will die sie ist aber leer ?
Organal :9:00 PM CET
Ergebnis:
Das ist ohne Code zu sehen schwierig zu sagen woran es liegt. Evtl. muss du noch auf die Ausführung von JavaScript warten.
Hey,
bin leider bei 18:37 stehengeblieben :/ Es geht darum, dass sowohl die Eingabeaufforderung als auch der VS Editor bei "print(page1.html.html)" nichts ausspuckt, aber bei den Befehlen davor läuft alles. Habe es auch mit anderen URLs probiert, aber kein Erfolg. Es scheint auch so als ob der VS Editor ewig lädt, da sich nach "Run" oben eine Anzeige öffnet mit Stopp, Pause und wiederholen.
Hey, da wirst du sicherlich ein Problem oder Tippfehler in deinem Code haben. Das solltest du auf jeden Fall prüfen.
Wenn du das Script im Editor startest, lädt da wahrscheinlich noch der Debugger mit. Dann kann der Startvorgang etwas langsamer sein.
Hey eine Frage.
Wenn ich zum Beispiel von zu Hause mit einer 16k Leitung täglich 10.000 Amazon-Seiten durchschauen will bzw den Quellcode auslesen will, was ist dafür besser/schneller geeignet? Phyton oder PHP?
Mit PHP (cURL) im Browser brauche ich ca. 1 Minute für 60 Seitenauslesungen. Danke.
Nun, das musst du unter deinen Gegebenheiten einfach testen.
Wenn du es mit PHP getestet hast, schreibe dir ein ähnliches Script in Python und vergleiche die Daten. Dann hättest du deine Antwort was zumindest schneller ist :-)
Python und Beautiful Soup geben dir allerdings noch zusätzlich die Möglichkeiten den HTML-Code per Selektor auszulesen. Das ist sicherlich mit curl etwas schwerer umzusetzen :-)
Danke für das Video! Bei 24:33 wird gezeigt, welche Elemente im dictionary von results sind. Ich schaffe es nicht, mir dies in PyCharm anzeigen zu lassen. Hast du einen Tipp bzw. was sind genau die Schritte?
Hast du schon probiert die einfach mal herauszuprinten?
Bei mir funktioniert das nicht... leider scheint da irgendwo ein Fehler zu sein.. würde mich über Hilfe sehr freuen.
Sende uns eine Mail mit Fehlermeldungen, Code und Screenshots an support@lerneprogrammieren.de
Hi, weißt du wie man einen Code schreibt der eine bestimmte Webseite auf Änderungen überwacht? Und dieses Script was überwacht soll dann direkt stoppen, wenn sich was geändert hat. Und dann soll direkt das nächste Script laufen. Wie soll ich sowas coden?( Hab auch schon ein Auto refresh gecoded, aber ich will halt was, dass der refresh dann direkt aufhört, wenn sich genau das auf der Internetseite ändert, was ich so haben will? Also das zweite Script muss irgendwie getriggert werden, aber davon hab keine Ahnung (Python)
Ich denke du wirst um die Programmiergrundlagen nicht drumherum kommen.
Ein Ansatz wäre: Du musst dir einen Teil der Seite im Skript merken und diesen dann mit den Inhalten aus der Webseite vergleichen, das halt in einem bestimmten Intervall. Das machst du solange, bis die Inhalte sich unterscheiden. Danach kannst du das nächste Script starten.
@@lerneprogrammieren-de ich weiß halt nicht wie sowas in Python geht, und das lernt man wenn man die Grundkenntnisse anguckt?
Genau, mit den Grundlagen der Programmierung kannst du dir die Logik selbst ausarbeiten und mittels Python umsetzen.
bei mir läuft der scraper seit 5 Minuten und ich bin bei 30%. mein cpu und arbeitspeicher sind aber garnicht überlastet und mein internet ist schnell. hast du einen tip?
Kann ich auf Anhieb leider nichts zu sagen, dafür müsste ich genauer sehen, was dein Programm abfragt. Konntest du das evtl. zwischenzeitlich selbst lösen?
Danke fürs Video!!! Hab nicht ganz den "encode_contents" verstanden aber das finde ich schon selber ;)
Sehr gut! Genau, etwas eigene Recherche gehört dazu :-)
Super Video bis ich daran gescheitet bin request_html zu installieren und immer einen Fehlercode erhalte. In roter Schrift steht dann "ERROR: Command errored out with exit status" .. sorry, bin allerdings noch Anfänger auf dem Gebiet :)
Welchen Befehl hast du genau eingegeben?
@@lerneprogrammieren-de hier bleibt er hängen: from requests_html import HTMLSession