2017-07-31 102 views
2

我想要做的是打開一個頁面(例如youtube)並自動登錄,就像我在瀏覽器中手動打開它一樣。Python:使用cookie與Selenium登錄

從我所瞭解的情況來看,我必須使用cookies,問題在於我無法理解。

我試圖下載YouTube餅乾這樣的:

driver = webdriver.Firefox(executable_path="driver/geckodriver.exe") 
driver.get("https://www.youtube.com/") 
print(driver.get_cookies()) 

而我得到的是:

{ '名': 'VISITOR_INFO1_LIVE', '值': 'EDkAwwhbDKQ','路徑 ': '/', '域':' .youtube.com」, '到期':無, '安全':假 '的HttpOnly':真}

所以我有什麼cookie來加載自動登錄?

+1

我想您可以將Cookie保存到文件中,然後加載它 – Mohamed

回答

3

您可以使用pickle到餅乾保存爲文本文件,然後在加載的方法:

def save_cookie(driver, path): 
    with open(path, 'wb') as filehandler: 
     pickle.dump(driver.get_cookies(), filehandler) 

def load_cookie(driver, path): 
    with open(path, 'rb') as cookiesfile: 
     cookies = pickle.load(cookiesfile) 
     for cookie in cookies: 
      driver.add_cookie(cookie) 
+0

好的,所以我手動進行了登錄並保存了cookie,現在在哪些部分必須加載它們?我試圖在* driver.get()*之後加載它們,但沒有任何反應。 –

+0

在大多數的時候,你必須:1.轉到主頁(它必須是同一域內的網頁),2.負載餅乾,3刷新 – Arount

+0

它的工作原理頁,真的很感謝你們! –