利用Selenium和Cookie實現自動登入Facebook

使用 selenium 時可以自動輸入帳號密碼登入,但也還有另一個選擇,就是使用 cookie 啦,這篇文章會以 Facebook 為例,教大家如何取得和使用 cookie。

取得 cookie

取得 cookie 的程式碼相當簡單,就這樣短短一行: cookie = driver.get_cookies()
而取得 cookie 的時間點在我們登入之後,所以先在程式碼加入 input() ,等我們登入後再到 terminal 輸入任意字以取得 cookie,最後再將 cookie 寫到檔案。

from selenium import webdriver
import json

driver = webdriver.Chrome('path to chrome driver')
driver.get('https://facebook.com/')

input() # 登入後再在 terminal 輸入任意字

cookie = driver.get_cookies() # get cookie

# 把 cookie 寫入檔案 (json 格式)
with open('cookie.json','w') as f:
    f.write(json.dumps(cookie))

使用 cookie

讀取剛剛含有 cookie 的檔案,再把 cookie 加到 driver,最後重新整理網頁就登入囉~

from selenium import webdriver
import json

driver = webdriver.Chrome('path to chrome driver')
driver.get('https://facebook.com/')

with open('cookie.json','r') as f: # 讀入 cookie
    data=json.loads(f.read())

for cookie in data:
    driver.add_cookie(cookie) # 把 cookie 加進去

driver.refresh() # 重新整理網頁

這樣就可以實現免帳密自動登入啦~趕快動手試試看吧!