2015-09-17 14 views
13

Teoretycznie, jeśli skopiuję wszystkie pliki cookie z obiektu selenowego webdriver do obiektu , żądania będą kontynuowane tak, jakby sesja była nie przerywać?Czy możliwe jest "przeniesienie" sesji pomiędzy selenium.webdriver a request.session

W szczególności interesuje mnie pisanie automatyzacji, gdzie dostaję się do określonej lokalizacji na stronie internetowej poprzez selen, a następnie przekazuję pewien link do pobrania do requests, który będzie pobierał i weryfikował określone bajty z pliku, a czasami pełne plik. (Wartość pobranego pliku zmieni się w zależności od mojej interakcji w selen)

Odpowiedz

12

Tak, to na pewno zadziała. Poniższy fragment kodu również powinien pomóc -

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

Świetnie, dzięki. Jaki jest cel aktualizacji nagłówków w wierszu 2 i skąd pochodzi parametr "nagłówki"? – Goro

+2

Po prostu zaktualizuj moją odpowiedź. Nagłówki służą tylko do wysyłania dodatkowych nagłówków, większość witryn oczekuje ciągów użytkowników popularnych przeglądarek. –

+0

Ah, ma sens. – Goro