Also versuche ich mich mit Python in Quora einzuloggen und dann etwas zu kratzen.
Ich benutze Selenium, um mich auf der Seite anzumelden. Hier ist mein Code:
%Vor%Jetzt die Fragen:
Es dauerte ~ 4 Minuten, um das Login-Formular zu finden und zu füllen, was schmerzhaft langsam wurde. Gibt es etwas, was ich tun kann, um den Prozess zu beschleunigen?
Wie habe ich mich bei der Anmeldung vergewissert, dass keine Fehler aufgetreten sind? Mit anderen Worten, wie überprüfe ich den Antwortcode?
Wie speichere ich Cookies mit Selen, damit ich nach dem Login weiter scrappen kann?
Wenn es keine Möglichkeit gibt, Selen schneller zu machen, gibt es dann noch eine andere Alternative für die Anmeldung? (Quora hat keine API)
Ich hatte ein ähnliches Problem mit sehr langsamen find_elements_xxx-Aufrufen in Python Selen mit dem ChromeDriver. Schließlich habe ich die Probleme auf einen Aufruf von driver.implicitly_wait () aufgespürt, den ich vor meinen find_element_xxx () -Aufrufen gemacht habe. Als ich es herausnahm, liefen meine find_element_xxx () -Aufrufe schnell.
Nun weiß ich , dass diese Elemente bei den find_elements_xxx () -Aufrufen vorhanden waren. Ich kann mir also nicht vorstellen, warum die implizite_wartung die Geschwindigkeit dieser Operationen beeinflusst haben sollte, aber sie hat es getan.
Ich war dort, Selen ist langsam. Es ist möglicherweise nicht so langsam wie 4 Minuten, um ein Formular zu füllen. Ich habe dann Phantomjs verwendet, was viel schneller ist als Firefox, da es kopflos ist. Sie können Firefox () einfach mit PhantomJS () in der Webdriver-Zeile ersetzen, nachdem Sie die neuesten phantomjs installiert haben.
Um zu überprüfen, ob Sie sich eingeloggt haben, können Sie für ein Element angeben, das nach dem Login angezeigt wird.
Solange Sie Ihren Treiber nicht beenden, sind Cookies verfügbar, um Links zu folgen
Sie können versuchen, urllib zu verwenden und direkt auf den Login-Link zu posten. Sie können cookiejar verwenden, um Cookies zu speichern. Sie können sogar einfach Cookie speichern, schließlich ist ein Cookie einfach eine Zeichenfolge im http-Header
Bei Windows 7 und IEDRIVER mit Python Selenium wurde das Problem durch das Beenden der Windows-Befehlszeile und den Neustart behoben.
Ich hatte Probleme mit find_element..clicks. Sie brauchten 30 Sekunden plus ein bisschen. Hier ist die Art von Code, den ich habe, einschließlich der Erfassung, wie lange zu laufen ist.
%Vor%Das hat ungefähr 31 Sekunden für jeden Klick aufgezeichnet. Nach dem Beenden der Befehlszeile und dem Neustart (was jeden IEDRIVERSERVER.exe-Prozess beendet), war es 1 Sekunde pro Klick.
Tags und Links python http selenium selenium-webdriver