Come posso salvare tutti i cookie nel Selenium WebDriver di Python in un file txt, quindi caricarli in un secondo momento? La documentazione non dice molto sulla funzione getCookies.Come salvare e caricare i cookie usando Python + Selenium WebDriver
risposta
È possibile salvare i cookie correnti come oggetto python utilizzando pickle. Per esempio:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump(driver.get_cookies() , open("cookies.pkl","wb"))
e poi aggiungerli indietro:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)
Ricordate, si può solo aggiungere dei cookie per dominio corrente. se vuoi aggiungere il tuo account Goolge.
fare
browser.get('http://google.com')
for cookie in cookies:
browser.add_cookie(cookie)
Questo dovrebbe essere nella loro documentazione :( – Tjorriemorrie
Quando è necessario i cookie di sessione in sessione c'è un altro modo per farlo, utilizzare il Chrome opzioni user-data-dir, al fine di utilizzare le cartelle come profili, corro:
chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com")
Si può fare qui gli accessi che controllano l'interazione umana, io faccio questo e poi i cookie di cui ho bisogno ora ogni volta che avvio il Webdriver con quella cartella tutto è lì dentro. Puoi anche installare manualmente le estensioni e averli in ogni sessione. Secon volta corro, tutti i cookie sono là:
chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com") #Now you can see the cookies, the settings, Extensions and the logins done in the previous session are present here
Il vantaggio è che si può utilizzare più cartelle con diverse impostazioni e biscotti, estensioni, senza la necessità di caricare, scaricare biscotti, installare e disinstallare le estensioni, modificare le impostazioni , cambia login via codice, e quindi non c'è modo di avere la logica dell'interruzione del programma, ecc. Anche questo è più veloce di dover fare tutto per codice.
- 1. Acquisizione o manipolazione di tutti i cookie in Selenium Webdriver
- 2. Rileva audio con Selenium Webdriver e Python
- 3. Estrai link da XPath usando Selenium Webdriver e Python?
- 4. Selenium Webdriver: Elimina i cookie su tutti i domini
- 5. Errore Selenium Webdriver: "Impossibile caricare il profilo"
- 6. Come ottenere l'opzione selezionata usando Selenium WebDriver con Python?
- 7. Come caricare il profilo predefinito in chrome usando Python Selenium Webdriver?
- 8. Come automatizzare captcha usando Selenium Webdriver?
- 9. Python Selenium Webdriver - Autenticazione proxy
- 10. Selenium Python Headless Webdriver (PhantomJS) non funziona
- 11. Come registrare un video nel webdriver Selenium
- 12. Selenium Webdriver con Java vs Python
- 13. Python - Selenium WebDriver - Esiste l'elemento di controllo
- 14. Selenium WebDriver e DropDown Boxes
- 15. Python Selenium WebDriver drag-and-drop
- 16. Cancella browser Cookie con Selenium WebDriver Java binding
- 17. Selenium Webdriver configurazione remota
- 18. HTML5 Trascina e rilascia usando Selenium Webdriver per Ruby
- 19. Come caricare sessioni e cookie dal browser Selenium alla libreria richieste in Python?
- 20. Massimizza WebDriver (Selenium 2) in Python
- 21. Come salvare i registri generati usando selenio con python
- 22. Selenium WebDriver su IE11
- 23. Come scorrere fino a elemento con Selenium WebDriver usando C#
- 24. Utilizzo di PhantomJS con Selenium Webdriver e Python
- 25. Come salvare i cookie delle richieste (python) in un file?
- 26. Come possiamo ottenere il tempo esatto per caricare una pagina usando Selenium WebDriver?
- 27. Come implementare PhantomJS con Selenium WebDriver usando java
- 28. Oggetto pagina Selenium WebDriver
- 29. Qual è la differenza tra Selenium Webdriver e Selenium Ghostdriver?
- 30. Come impostare il timeout predefinito di Selenium Python WebDriver?
Sto ricevendo errore "pickle protocol deve essere <= 2". Usando il codice pickle che hai postato. Cosa significa questo? Si riferisce agli argomenti? –
Questo farebbe la stessa cosa? cookieFile = open ("cookies.pkl", "w") dump = pickle.dumps (driver.get_cookies()) cookieFile.write (dump) –
Ciao Aaron, ho modificato un po 'l'esempio - in pratica il il flag "b" è stato aggiunto alle sezioni aperte del file. Puoi provare con quello? –