2015-09-17 14 views
13

In teoria, se copio tutti i cookie dall'oggetto webdriver del selenio all'oggetto requests.Session, le richieste potrebbero continuare come se la sessione fosse non interrotto? In particolare, mi interessa scrivere all'automazione dove arrivo a una posizione specifica nella pagina web tramite selenio, quindi passare un determinato collegamento di download a requests, che scaricherà e verificherà i byte specifici dal file, ea volte un completo file. (Il valore del file scaricato cambierebbe in base alla mia interazione in selenio)È possibile "trasferire" una sessione tra selenium.webdriver e requests.session

risposta

12

Sì, funzionerà sicuramente. Anche lo snippet di codice seguente dovrebbe essere d'aiuto -

headers = { 
"User-Agent": 
    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" 
} 
s = requests.session() 
s.headers.update(headers) 

for cookie in driver.get_cookies(): 
    c = {cookie['name']: cookie['value']} 
    s.cookies.update(c) 
+0

Grande, grazie. Qual è lo scopo dell'aggiornamento delle intestazioni nella riga n. 2 e da dove proviene il parametro "intestazioni"? – Goro

+2

Basta aggiornare la mia risposta. Le intestazioni servono solo per inviare intestazioni aggiuntive, la maggior parte dei siti si aspetta una stringa user-agent di browser popolari. –

+0

Ah, ha senso. – Goro