Wie Sie die cookies in phantomjs mit Selen mit python?
Es eine Fehlermeldung hervorrufen, sagte, "Kann nur die Cookies für die aktuelle Domäne",aber alle die ich gemacht habe, einfach die alten cookies.Irgendwann füge ich die 'richtige' domain,Fehler Meldung "Unable to set Cookies".
Und getestet habe ich es in Firefox,auch Firefox cant arbeiten.
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=phantompath)
driver.get('http://stackoverflow.com/')
driver.get_screenshot_as_file('1.png')
cookies = driver.get_cookies()
driver.delete_all_cookies()
driver.get_cookies()
for cookie in cookies:
driver.add_cookie(cookie)
InformationsquelleAutor Louise | 2016-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem PhantomJS-Treiber unterstützt nicht alle Schlüssel aus der cookie-Wörterbuch. Ein Weg, um dieses Problem zu beheben, wählen Sie die Tasten:
Es arbeitet mit anderen websites. Beachten Sie, dass müssen Sie zunächst die domain mit
driver.get('http://...')
vor dem Aufrufdriver.add_cookie
und stellen Sie sicher, dass die domain des Cookies ist die gleiche wie die von der aktuellen Seite.Ja,ich habe diesen code ausführen ohne Fehler,aber wenn ich es geändert
driver.get('http://stackoverflow.com/')
zudriver.get('https://github.com/')
ist ,wird es erhöhenKeyError: 'expiry'
.Und es wird zu erhöhen"errorMessage":"Unable to set Cookie"
auf anderen Webseiten,Ich würde die Domäne entfernen und überprüfen, ob der Schlüssel vorhanden ist:
driver.add_cookie({k: cookie[k] for k in ('name', 'value', 'path', 'expiry') if k in cookie})
Entferne ich das 'domain' als das, was Sie tun,aber dieser code kann nicht korrekt verarbeitet werden, die 'github.com' website noch,es wirft
"errorMessage":"Can only set Cookies for the current domain"
InformationsquelleAutor Florent B.
Müssen Sie ändern Sie die domain-parameter für jedes cookie. Das Feld domain muss wie folgt formatiert:
Als Ergänzung zu @HiddenStrawberry die Antwort von oben, der Punkt/Punkt vor der domain ist erforderlich, auch für Werte wie
localhost
- da fand ich die harte Weise. Chrome-und Firefox-Treiber möchte hinzufügen, die Cookies mit der domain eingestelltlocalhost
aber die PhantomJS-Treiber wäre nur erfolgreich, fügen Sie die Cookies, wenn die domain wurde eingestellt, um.localhost
.InformationsquelleAutor HiddenStrawberry