python+selenium给webdriver添加cookie

最近要爬取一家需要登录的网站,之前尝试cookie替换一直不成功,今天通过搜索网上的资料终于成功了。话不多说,直接上干货。

1. 判断cookie中起作用的字段

登录目标网站,打开谷歌浏览器F12调试器,可以发现cookie里面有很多字段,你要找到起作用的那一个,一般是(XX)SESSIONID字样的字段。

2. 构造cookie_dict

注意: 对cookie的操作一定要在driver.get()方法后。
cookie_dict起作用的一般是如下字段

{
    'domain': '', 
    'path': '', 
    'name': '',
    'value': ''
}  

所以需要对上面字段进行设置,在之前第1步中会获取到cookie的字符串,假设你获得的cookie字符串为"XXSESSIONID=sadasda", 则
'name'对应 "XXSESSIONID"
'value' 对应 "sadasda"
那么pathdomain字段呢?不用着急,接着往下看
selenium里提供有根据name获取对应cookie_dict的方法,

# 获取名为'XXSESSIONID'的cookie
driver.get_cookie('XXSESSIONID')

这样就能知道XXSESSIONID对应cookie_dictdomainpath字段的值了,从而构造出我们的cookie_dict

3. 替换cookie_dict

既然我们已经知道哪个cookie字段起作用,我们就替换掉它。分为下面3步:

# 1.删除名为'XXSESSIONID'对应的cookie_dict
driver.delete_cookie('XXSESSIONID')
# 2.添加我们构造的cookie_dict, cookie_dict由第2步方法构造所得
driver.add_cookie(cookie_dict)
# 3.刷新页面
driver.refresh()

刷新页面操作后就能看到模拟登陆是否成功,建议使用chromedriver来进行测试。

    原文作者:xkang
    原文地址: https://www.jianshu.com/p/c2c11af5686d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞