Ist Selen langsam, oder ist mein code falsch?
Also ich versuche auf login zu Quora mit Python und dann kratzen ein paar Sachen.
Ich bin mit Selen zur Anmeldung auf der Website. Hier ist mein code:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
username = driver.find_element_by_name('email')
password = driver.find_element_by_name('password')
username.send_keys('email')
password.send_keys('password')
password.send_keys(Keys.RETURN)
driver.close()
Nun die Fragen:
-
Es dauerte ~4 Minuten zu finden, und füllen Sie das login-Formular, die quälend langsam. Gibt es etwas, was ich tun kann, um den Prozess zu beschleunigen?
-
Wenn überhaupt, login, wie kann ich sicherstellen, dass es keine Fehler? In anderen Worten, wie kann ich prüfen, ob der response-code?
-
Wie kann ich das speichern von cookies, die mit Selen-so kann ich fortsetzen, Schaben, sobald ich mich anmelden?
-
Wenn es keinen Weg gibt, um das Selen schneller, gibt es eine andere alternative für die Anmeldung? (Quora nicht über eine API)
- Die Linien sind sich die Zeit?
- Fast alle von Ihnen. Der browser öffnet sich ganz gut, aber dann finden Sie die Felder aus, und füllen Sie dauert etwa eine minute, jeden.
- Ja. Läuft einwandfrei auf Google. Muss ein Problem mit quora.
- Mit Quora und die neuesten Selen C# - API, es ist schnell für mich.
- Wie schnell? Weil ich habe versucht, auf 3 Maschinen mit der Python-API und es geht so verdammt langsam.
- Noch kann ich es reproduzieren mit Firefox + Python/C#2.33.0 Bindungen.
driver.Navigate().GoToUrl("http://www.quora.com/physics");Thread.Sleep(3000);var source = WebDriver.PageSource;
Erhalten Ausnahme. - haben Sie es geschafft, kratzen Sie etwas von Quora mit python?
- Ich kann kratzen Sie die öffentlichen Inhalte (Frage, Titel, top-Antwort), aber alles andere ist eine Sauerei.
- Ich habe das gleiche problem mit Quora. Selen dauert ewig zu tun, einfache Aufgaben. Ich denke, dass Sie nicht wollen, dass wir uns kratzen Sie.
- Ich versuchte kopflos Chrom-Treiber, jedoch
driver.get('http://www.quora.com/')
läuft immer noch langsam, und es dauert fast 4 Minuten. @KaranGoel Haben Sie eine Lösung gefunden, um den Prozess zu beschleunigen? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte ein ähnliches problem mit der sehr langsamen find_elements_xxx Anrufe in Python selenium mit der ChromeDriver. Ich schließlich aufgespürt die Mühe, einen Treiber.implicitly_wait () - Aufruf machte ich vor meiner find_element_xxx() aufruft; und wenn ich nahm es heraus, mein find_element_xxx () - Aufrufe lief schnell.
Nun, ich wissen diese Elemente waren es, als ich die find_elements_xxx () - Aufrufe. Also ich kann mir nicht vorstellen, warum die implicit_wait sollten betroffene die Geschwindigkeit dieser Vorgänge, aber er Tat es.
Bin ich dort gewesen, Selen langsam ist. Es kann nicht sein, so langsam wie 4 Minuten, um ein Formular auszufüllen. Ich habe dann begonnen, mit phantomjs, die ist viel schneller als firefox, denn es ist kopflos. Sie können ersetzen Sie einfach die Firefox - () mit PhantomJS() in der webdriver Linie nach der Installation der neuesten phantomjs.
Um zu prüfen, ob login können Sie geltend machen, für einige element, die angezeigt wird, nachdem login.
Solange Sie nicht aufhören, Ihr Fahrer, werden cookies zur Verfügung, um links Folgen
Können Sie versuchen, mit das urllib und post direkt zum Anmelde-link. Sie können cookiejar, dass cookies gespeichert werden. Sie können auch einfach speichern, cookie, nachdem alle, ein cookie ist einfach ein string im http-header
assert "Home" in driver.title
gab mirAssertionError
. 4. Ich kann versuchen, das ist sicher.phantonjs
(keine Erweiterung)Können Sie befestigen Sie Ihr Formular ausfüllen, indem Sie mit Ihren eigenen setAttribute-Methode, hier ist der code für java für it -
browser.execute_script(' // javascript goes here ')
mit python??Läuft der web-Treiber headlessly verbessern sollte seine Ausführungsgeschwindigkeit zu einem gewissen Grad.
Für Windows 7 und IEDRIVER mit Python, Selenium, Endet der Windows-Kommandozeile und einen Neustart geheilt mein Problem.
Ich Probleme mit find_element..Klicks. Sie waren unter 30 Sekunden plus ein bisschen. Hier ist die Art von code, den ich auch erfassen, wie lange zu laufen.
Wurde die Aufnahme etwa 31 Sekunden pro Klick. Nach Ende der Befehlszeile ein und Neustart (die hat am Ende, jede IEDRIVERSERVER.exe Prozesse), es war 1 Sekunde pro Klick.
Habe ich geändert Locator-Punkte und das funktioniert schnell. Auch ich habe Hinzugefügt, arbeiten mit cookies. Überprüfen Sie den code unten:
Wir haben cookies gespeichert und jetzt werden wir Sie in einem neuen browser -:
Hoffe, das wird helfen.