1. #1
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.218
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard

    In diesem Beitrag werden wir einen Chrome Browser mit Selenium in Python fernsteuern und automatisiert Informationen aus einer Internetseite auslesen. Das Internet ist voller "Bots", und das nicht zur Verbreitung von Propaganda oder anderem negativen Sinne: Scraper/Crawler lesen automatisiert Informationen aus Internetseiten aus, um damit durchaus sinnvolle Dienstleistungen anzubieten. Suchmaschinen wie Google sind nur möglich, weil Bots das Internet durchsuchen und diese Daten aufbereiten. Dies wäre für den Einstieg zu komplex, allerdings schauen wir uns die Grundlagen dafür an: Also das fernsteuern eines Browsers, um gezielt über CSS/Xpath Selektoren einen Wert aus einer Tabelle auszulesen. Zur Textversion mit allen Codes und Befehlen.


  2. #2
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Klasse Video und wirklich gut erklärt. Würde mich freuen, wenn es hierzu noch ein weiteres Video gibt.

    Kommentar von Christoph Löwenstein.

  3. #3
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Sehr interessantes Thema! Ich erwarte dann die Fortsetzung bis zur Folge 35

    Vielleicht magst du dir einmal beim CCC den Vortrag von David Kriesel zum Thema "der Bundesbahn Hack" bzw " der Bundeswahl hack" ansehen (vielleicht sind die ja auch schon bekannt) und einmal sagen, ob das dort eine ähnliche Basistechnik ist. Die schöne Auswertung, die der David danach fährt ist natürlich ein vollkommen anderes Thema.

    Vielleicht magst du auch noch darauf eingehen, wie individuell die Programmierung auf eine Seite eines Anbieters angepasst sein muss bzw wie flexibel man z.b. nachdem impressum den dortigen Kontaktmöglichkeiten, den Adressen und Bankverbindungen und z.b. den Vorstandsvorsitzender bzw Aufsichtsräten suchen kann. Da größere Firmen vermutlich nichts bewahrt press verwenden, sondern eigene Programmierer beauftragt haben, wird die Lösung der einzelnen Anbieter sicherlich sehr individuell sein, aber das Herausfiltern der Adressen und Rufnummern müsste doch trotzdem irgendwie einem Schema folgen können.
    Vielleicht kannst du da einige Möglichkeiten oder auch Grenzen zeigen.

    Der eine Teilbereich wäre also die Beobachtung einzelner Seiten auf Veränderung (z.b. Preisveränderungen) oder die Beobachtung mehrere Seiten auf identische Grundinformationen(z.b. Impressum - für den Anfang).

    Das Schreiben in einer Datenbank wäre dann für beide Teilprojekte wieder identisch, genauso wie die Auswertung.

    Vermutlich wäre auch interessant, wie man eine Seite in mehreren Etappen auswerten kann, dass man sich im ersten Schritt z.b. die möglichen Artikelnummern verschafft und im nächsten Schritt die Seiten zu den Artikelnummern nacheinander aufruft und dann den einzelnen Nummern in der Datenbank zuweist.

    Zu beachten ist bei allen Varianten sicherlich die von Facebook und YouTube, aber sicherlich auch bei Amazon, verwendete Technik, das durch klicken auf "mehr", "weitere Informationen"," aufklappen "," zuklappen ", und so weiter sich die Internetseite mehr oder weniger beim Betrachten verändert.(Dabei ist mir häufig nicht klar, ob der Text schon vollständig heruntergeladen wurde und nur ausgeblendet ist oder ob er, wie bei Facebook und YouTube, erst auf Mausklick nachgeladen wird. - wie man das erkennen und für die Programmierung beachten kann, ist vermutlich ein eigenständiges Thema .)

    Auch Verzögerungen durch Werbung oder aufspringende Pop-Up-Fenster oder der Countdown eines Zähler (z.b. bei einem Download einer Datei) sind vermutlich ebenfalls relevante Aspekte.

    xoxoxo

    Du hast noch ein anderes Thema angesprochen: headless

    Vielleicht kannst Du einmal den grundsätzlichen Aufbau von headless PCs beschreiben, soweit er das Betriebssystem betrifft.

    Sicherlich ist es nicht nur so, dass ein PC mit einer Grafikkarte installiert wird und die Grafikkarte vor der Montage beim Kunden einfach wieder ausgebaut wird.

    Leider kann man aber die Funktion ohne Grafikkarte nur sehr eingeschränkt testen. Dafür sind dann wieder VNC oder SSH notwendig. Wie muss man A für das BIOS, B für Windows, C für Linux Systeme vorgehen um den headless Betrieb vorzubereiten? Ich wüsste spontan jedenfalls nicht, wie ein PC ohne Grafikkarte reagiert Punkt wenn sie fehlerhaft eingebaut ist, weiß ich, dass das BIOS sehr aufgeregt piept, und der PC nicht startet.

    xoxoxo6

    Ich weiß nicht, wie viel Leute an diesen Themen interessiert sind, aber du hast hier ins Schwarze getroffen und die Möglichkeit einer Serie mit sicherlich etlichen Dutzend Folgen gelegt.

    Ich kenne deine bisherigen teilweise sehr ausführlichen und angenehmen Antworten, und würde das allerdings viel lieber in den vielen Dutzend Folgen zu diesen Themen wiederfinden.

    Eine einfache Ankündigung reicht :')
    Ein schönes Wochenende gewünscht.

    Auf Wunsch kann ich weitere Fragen nachreichen



    Kommentar von wolfgang gosejacob

  4. #4
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Gutes Video! Python Tutorials sind immer hilfreich. Ich muss mich dringend motivieren wieder mehr zu programmieren. Ist ein wichtiger und hilfreicher Skill, wenn man in der IT arbeitet.

    Kommentar von David Zimmermann.

  5. #5
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Hast schon vom Projekt "Pockit" gehört? Auf dem gleichnamigen Kanal kann man die aktuelle Vortschritte sehen.

    Kommentar von Andy Spark.

  6. #6
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.218
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard

    Wow, erstmal danke für deine Rückmeldung, den Rekord des bisher längsten YT-Kommentars hast du damit sicher geknackt xD
    David Kriesel kenne ich schon länger, habe einige Vorträge gesehen u.a. zu Xerox und Spiegel. Beim Spiegel hatte er sich an einem Crawler für ein Big Data Projekt versucht. In der Rohfassung des Videos hatte ich einen Verweis auf seinen Spiegel-Vortrag drin. Allerdings mit Versprecher im Ton und weil das Video ohnehin schon recht lang war, habe ich mich dann dazu entschieden, es zu streichen. Er hat einige interessante Vorträge, ich schätze ihn für seine Arbeit und auch die Vorgehensweise. Bei Xerox beispielsweise war er - im Gegensatz zu Xeros - dennoch sehr fair.

    Die Vorgehensweise von ihm bei solchen Projekten ist in gewisser Hinsicht ähnlich. Wenngleich ich davon ausgehe, dass er statt Selenium die Anfragen selbst sendet, was ich in dem Beitrag kurz als Alternative erwähnt habe. Das ist v.a. bei vielen Anfragen/großen Datenmengen effizienter, aber tendenziell mehr Arbeit (je nach Aufbau der Seite). Aufklappen/Zuklappen wäre so ein Thema, dass auf diesem Wege tendenziell komplexer werden kann, als mit Selenium. Über die Browser-Fernsteuerung klickst du vereinfacht gesagt drauf und wartest bis das offen ist.

    Filtern lassen sich am besten Inhalte, die gleich oder zumindest sehr ähnlich aufgebaut sind wie eine E-Mail Adresse oder Telefonnummer. Schwierig wird es, wenn Schutzmaßnahmen ergriffen werden (z.B. Impressum als Bild eingefügt). Und bei Dingen, die man aus dem Kontext herauslesen muss, wie etwa ein Name. Am einfachsten ist es hinsichtlich des Inhalts wenn man auf feste HTML-Strukturen gehen kann, wie z.B. bei einem Stackoverflow-Crawler, den ich mal geschrieben habe. Da ist der Fokus dann eher auf das systematische Auslesen und Verknüpfen der Daten, was du später angesprochen hast. Ich werde mal überlegen noch was in der Richtung zu machen, Stoff für 2 oder 3 Beiträge würde das locker liefern.

    Popups & co. sind ein guter Punkt, darauf bin ich auch schon mehrfach gestoßen. Teils sind bereits die Cookie-Banner ein Problem, zumindest wenn sie sich über die ganze Seite legen. 35 Folgen schaffe ich zeitlich wahrscheinlich nicht, zumal das Thema in der gesamten Community nicht so viel Anklang zu finden scheint. Potenzial für weitere Teile ist auf jeden Fall da, ich denke ein bisschen was mache ich da trotzdem noch zu. Vor allem in Richtung Auswertung, da gibt es coole Tools die man auch zu anderen nützlichen Zwecken einsetzen kann.

    Was du mit Headless-PCs meinst, erschließt sich mir nicht so ganz. In dem Kontext ging es nicht primär darum, ob das System eine physische Grafikkarte hat. Wenn man das Browserfenster sehen will, könntest du auf einer Linux-Maschine ja z.B. X-Forward machen. Der Punkt ist, dass solch ein Crawler ja zumindest produktiv möglichst autonom laufen soll, da will und braucht es keine grafischen Fenster. Egal ob physisches oder virtuelles Anzeigegerät. Bei der Hardware die du ansprichst setzt man Systeme ohne physischen Bildschirm hauptsächlich im Serverbereich ein. Die Systeme haben i.d.R. trotzdem eine Grafikkarte, meist nur was kleines OnBoard, eben zur Installation und für den Fehlerfall. Ob man die nutzt ist wieder ein anderes Thema, gerade in großen Rechenzentren nutzt man eher Lösungen wie KVM über IP. Das leitet dir Bildschirm, Tastatur und Maus vereinfacht gesagt übers Netzwerk weiter. Oder PXE um den Server von was bestimmtem Booten zu lassen, dass dann entweder automatisch was installiert oder eine Umgebung dafür bereitstellt.

    In der Regel wird man auf neuen Servern irgend einer Art Fernzugriff einrichten und administriert die dann darüber. Angeschlossene Bildschirme oder KVM-Konsolen sind eher was für den Fehlerfall oder umfangreichere Änderungen. Grafikkarten ausbauen macht man in der Regel nicht. Kannst du teils auch gar nicht, Intel Systeme z.B. haben eine integrierte On-Board Karte. Bei PCs erübrigt sich das weil die (wenn sie nicht als Server laufen sollen) eh mindestens eine Grafikkarte drin haben.

    @Pockit
    Bisher noch nicht. Sieht sehr cool aus! Hatte mich vor ein paar Jahren schon auf Project Ara gefreut. Gerade im Smartphonebereich sieht es da sehr schlecht aus, statt modularer zu gestalten wird mehr verbaut... eine Schande, dass das eingestellt wurde. Für den Raspberry Pi wäre was in der Richtung sicher ein netter Einstieg und auch praktisch für Tests. Danke für den Hinweis. Bin gespannt, wann das kommt und wie es sich in der Praxis schlägt. Sieht technisch komplex aus, hat aber durchaus Potenzial.

  7. #7
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Tolles Video! Gerne mehr Teile davon. So einen Anwendungsfall hat man immer wieder.Interessant wäre auch wie es machbar ist eine Zahl auszulesen die z.b. Über java angezeigt wird und nicht plane in der html steht

    Kommentar von Daniel Youtube.

  8. #8
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.218
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard

    Danke! :) Ich vermute, du meinst JavaScript statt Java? Das ist hier relativ einfach möglich, weil der Browser JS ganz normal ausführt. Java gab es in Browsern auch mal in Form von Applets. Die waren zuletzt aber selten und werden mittlerweile von den gängigen Browsern nicht mehr unterstützt.

  9. #9
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    Ja, stimmt. JavaScript. ?

    Kommentar von Daniel Youtube.

  10. #10
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard

    vielen Dank für deine Antwort und die Wahrscheinlichkeit, dass die Rückmeldungen zu diesem Thema nicht sehr groß sind, war mir einigermaßen klar, weil David Kriesel gibt es auch nicht so häufig. Ich lasse mich dann mal über deinen output überraschen und hoffe, dass es nicht nur die Auswertung ist, sondern braucht noch ein bisschen vom dafür notwendigen Basismaterial. Die Situation mit den Grafikkarten ist mir nicht umfassend genug bekannt, denn alleine die großen Server farmen, die Geräte für ihre "Keller" produzieren lassen, weichen ja vom Standard ab und sind entsprechend individuell. Da können wir gar nicht reingucken. Meine Frage/Anmerkungen und war von deinem Thema vollkommen losgelöst und war fast ausschließlich darauf bezogen, wie der Rechner konfiguriert werden muss, wenn er zwar mit Grafikkarte installiert wird, für den Produktivbetrieb aber die Grafikkarte "rausgezogen wird". Die Geschichte mit Intel ist mir auch nicht ganz bekannt, da ich weiß, dass ist CPUs mit oder GPU gibt, und bei einer CPU ohne GPU ist man ja nicht gezwungen eine Grafikkarte extra einzubauen. Ob sich das Thema mit headless Computern in den letzten Jahren stark verändert hat, weiß ich nicht, vielleicht sind die Konzepte ja auch mittlerweile anders als vor 15 oder gar 25 Jahren. Ein schönes Wochenende gewünscht

    Kommentar von wolfgang gosejacob.

Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.