2015-04-10 14 views
11

Come posso caricare sessione e cookie dal browser Selenium? Il seguente codice:Come caricare sessioni e cookie dal browser Selenium alla libreria richieste in Python?

import requests 

cookies = [{u'domain': u'academics.vit.ac.in', 
      u'name': u'ASPSESSIONIDAEQDTQRB', 
      u'value': u'ADGIJGJDDGLFIIOCEZJHJCGC', 
      u'expiry': None, u'path': u'/', 
      u'secure': True}] 
response = requests.get(url2, cookies=cookies) 

mi dà la seguente eccezione:

Traceback (most recent call last): 
    File "F:\PYTHON\python_scripts\cookies\cookies3.py", line 23, in <module> 
    response = requests.get(url2, cookies=cookies) 
    File "C:\Python27\lib\site-packages\requests\api.py", line 68, in get 
    return request('get', url, **kwargs)<br/> 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 450, in request 
    prep = self.prepare_request(req) 
    cookies = cookiejar_from_dict(cookies) 
    File "C:\Python27\lib\site-packages\requests\cookies.py", line 439, in cookiejar_from_dict 
    cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) 
TypeError: list indices must be integers, not dict 
+1

Sì la sua possibile, ma perché si vuole farlo? – That1Guy

+0

@ That1Guy sto usando il selenio per superare il login basato su captcha. poi in poi ho bisogno di analizzare più di 1000 URL per informazioni xml. Ma se uso il selenio dovrò caricare la pagina usando il browser, ma ho bisogno di farlo solo in background – cbn

+0

@ That1Guy domanda aggiornata – cbn

risposta

23

In primo luogo si deve ottenere i cookie dal vostro istanza del driver:

cookies = driver.get_cookies() 

Questo restituisce un set of cookie dictionaries per la sessione .

Successivamente, impostare i cookie in requests:

s = requests.Session() 
for cookie in cookies: 
    s.cookies.set(cookie['name'], cookie['value']) 
+0

ottenere errore in questa riga s.cookies.set (** cookie) TipoErrore: create_cookie() ha argomenti di parole chiave inattese: [u'expiry '] il cookie quando è stampato è così [{u'domain': u'acemics.it.ac.in ', u'secure': vero, u 'value': u'PBHHJGJDHMSEEHGCDJLICARE ', u'expiry': None, u'path ': u'/', u'name': u'ASPSESSIONIDAEQDTQRB '}] – cbn

+0

errore nella riga a = requests.get (url2, cookies = cookie) TypeError: gli indici di lista devono essere interi, non dittati – cbn

+0

grazie a cui ha funzionato finalmente – cbn

Problemi correlati