2015-09-17 12 views
13

Về lý thuyết, nếu tôi sao chép tất cả cookie từ đối tượng webdriver của selenium thành đối tượng requests.Session, sẽ yêu cầu có thể tiếp tục như thể phiên không bị gián đoạn?Có thể "chuyển" phiên giữa selenium.webdriver và requests.session

Cụ thể, tôi quan tâm đến việc viết tự động hóa nơi tôi đến vị trí cụ thể trên trang web qua selen, sau đó chuyển vào liên kết tải xuống nhất định tới requests, sẽ tải xuống và xác minh các byte cụ thể ra khỏi tệp và đôi khi đầy tập tin. (Giá trị của tệp được tải xuống sẽ thay đổi dựa trên tương tác của tôi trong selen)

Trả lời

12

Có chắc chắn nó sẽ hoạt động. Đoạn mã sau cũng cần trợ giúp -

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

Tuyệt vời, cảm ơn. Mục đích của việc cập nhật tiêu đề trong dòng # 2 là gì và thông tin 'tiêu đề' đến từ đâu? – Goro

+2

Chỉ cần cập nhật câu trả lời của tôi. Tiêu đề chỉ dành cho việc gửi bất kỳ tiêu đề bổ sung nào, hầu hết các trang web đều mong đợi một chuỗi tác nhân người dùng của các trình duyệt phổ biến. –

+0

Ah, có ý nghĩa. – Goro

Các vấn đề liên quan