Ich habe Mühe, eine Methode in Python zu finden, mit der man Daten in einem aktuell verwendeten Webbrowser lesen kann. Effektiv versuche ich, einen massiven Datenrahmen von Daten auf einer lokal kontrollierten Unternehmenswebseite herunterzuladen und in einen Datenrahmen zu implementieren. Das Problem ist, dass die Website einen ziemlich komplexen Authentifizierungs-Token-Prozess hat, den ich Selenium mit einer Vielzahl von Webtreibern, Requests, urllib und cookielib unter Verwendung einer Vielzahl von Benutzerparametern nicht umgehen konnte. Ich habe dies völlig aufgegeben, da ich fast überzeugt bin, dass es bei der Authentifizierung mehr gibt, als mit diesen Bibliotheken leicht erreicht werden kann.
Allerdings habe ich es geschafft, den erforderlichen Tokenisierungsprozess zu umgehen, als ich schnell einen neuen Tab in einem aktuellen Browser getestet habe, der bereits mit WebBrowser . Klassischerweise bietet WebBrowser keine Lesefunktion, was bedeutet, dass die Daten auf der Seite nicht in einen Pandas-Datenrahmen gelesen werden können, obwohl die Seite geöffnet werden kann. Das hat mich dazu gebracht, Win32com zu benutzen, einen Browser zu öffnen, mich einzuloggen und dann den Rest des Skripts auszuführen, aber es gibt keine generelle Lesefähigkeit des Versands für Internet Explorer, was bedeutet, dass ich die Informationen nicht an Pandas schicken kann . Ich bin ratlos. Irgendwelche Ideen?
Ich könnte die notwendigen Authentifizierungs-Token-Skripte erwerben, aber ich bin mir sicher, dass es ein oder zwei Wochen dauern würde, bevor irgendetwas an dieser Front passieren würde. Ich würde es natürlich bevorzugen, etwas in der Zwischenzeit zu bekommen, während ich auf die eigentlichen Auth-Skripte von der Firma warte.
Update: Ich habe Authentifizierungs-Token von der Firma erhalten, aber es erfordert die Verwendung eines Python-Pakets auf einem anderen Server, auf den ich auch keinen Zugriff habe, hauptsächlich weil es eine Kuriosität ist, dass ich Python in meiner Abteilung verwende. Somit gilt das oben Gesagte - benötigen Sie eine Methode zum Lesen und Manipulieren eines offenen Browsers.
1) Starten Sie den Browser mit Selenium.
2) Das Skript sollte auf bestimmte Elemente warten, die Sie darüber informieren, dass Sie die erforderliche Seite erhalten haben und eingeloggt sind.
3) Sie können dieses neue Browserfenster verwenden, um sich manuell auf der Seite anzumelden.
4) Script erkennt, dass Sie sich auf der erforderlichen Seite befinden und angemeldet sind.
5) Script-Prozesse Seite wie Sie möchten.
%Vor%Es ist möglicherweise einfacher, wenn Sie das Profil Ihres Chrome-Nutzers verwenden. Auf diese Weise können Sie die vorherige Sitzung fortsetzen, so dass Sie keine Login-Aktionen durchführen müssen.
%Vor%Tags und Links python authentication web-scraping