最近要爬取一家需要登錄的網(wǎng)站,之前嘗試cookie替換一直不成功,今天通過搜索網(wǎng)上的資料終于成功了。話不多說,直接上干貨。
1. 判斷cookie中起作用的字段
登錄目標(biāo)網(wǎng)站,打開谷歌瀏覽器F12調(diào)試器,可以發(fā)現(xiàn)cookie里面有很多字段,你要找到起作用的那一個,一般是(XX)SESSIONID字樣的字段。
2. 構(gòu)造cookie_dict
注意: 對cookie的操作一定要在driver.get()方法后。
cookie_dict起作用的一般是如下字段
{
'domain': '',
'path': '',
'name': '',
'value': ''
}
所以需要對上面字段進(jìn)行設(shè)置,在之前第1步中會獲取到cookie的字符串,假設(shè)你獲得的cookie字符串為"XXSESSIONID=sadasda", 則
'name'對應(yīng) "XXSESSIONID"
'value' 對應(yīng) "sadasda"
那么path和domain字段呢?不用著急,接著往下看
selenium里提供有根據(jù)name獲取對應(yīng)cookie_dict的方法,
# 獲取名為'XXSESSIONID'的cookie
driver.get_cookie('XXSESSIONID')
這樣就能知道XXSESSIONID對應(yīng)cookie_dict 中domain和path字段的值了,從而構(gòu)造出我們的cookie_dict。
3. 替換cookie_dict
既然我們已經(jīng)知道哪個cookie字段起作用,我們就替換掉它。分為下面3步:
# 1.刪除名為'XXSESSIONID'對應(yīng)的cookie_dict
driver.delete_cookie('XXSESSIONID')
# 2.添加我們構(gòu)造的cookie_dict, cookie_dict由第2步方法構(gòu)造所得
driver.add_cookie(cookie_dict)
# 3.刷新頁面
driver.refresh()
刷新頁面操作后就能看到模擬登陸是否成功,建議使用chromedriver來進(jìn)行測試。