python的selenium驅動谷歌瀏覽器使用cookie自動登入
阿新 • • 發佈:2018-11-30
在使用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)