1. 程式人生 > >python的selenium驅動谷歌瀏覽器使用cookie自動登入

python的selenium驅動谷歌瀏覽器使用cookie自動登入

在使用python進行爬蟲的時候,可能網站有登入機制,如果每次都需要輸入使用者名稱密碼進行登入,則比較麻煩,cookie儲存了使用者登入資訊,如果在登入的時候自動新增好cookie資訊,那麼就可以跳過登入的步驟,那麼,如何實現這一機制呢。

python的selenium庫可以驅動谷歌瀏覽器訪問一些網站,模擬人類的某些行為,那麼,我們怎麼樣才能給selenium的 webdriver新增cookie資訊呢?以下步驟以微博為例。

1.首先登入,先驅動谷歌瀏覽器訪問微博的登入頁面,輸入使用者名稱和密碼,然後使用webdriver的get_cookies()方法可以獲取登入城後之後的cookies,隨後,將該cookies資訊儲存到檔案中。

2.第二次訪問該網站某一個人的微博,注意,這個時候可以預設已經登入了,url是該微博的主頁(在沒有登入的情況下會自動跳轉到登入頁面),隨後讀取第一步生成的cookie檔案,一般第一步生成的cookie是一個列表,然後迴圈遍歷該cookie,並使用webdriver的add_cookie()方法新增cookie,然後就可以訪問網站啦。

 

注意在這個過程中如果出現    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unable to set cookie問題,是由於在新增cookie之前沒有訪問網站,也就是說,需要先訪問微博的某個網址,然後才能新增cookie,即新增cookie需要明確在哪個網站上新增cookie,程式碼如下:

driver = webdriver.Chrome()
driver.get(url)
for each_cookie in cookie_list:
    driver.add_cookie(each_cookie)
driver.get(url)