selenium中get_cookies()和add_cookie()的⽤法详解
在⽤selenium爬取⽹页的时候,有时候需要登陆,这时候⽤selenium获取cookie和携带cookie是很⽅便的,获取cookie可以通过内置的函数get_cookies(),它得到的是⼀组cookie,是由cookie组成的列表。单个的cookie是字典组成的,所有get_cookies()返回值是由字典组成的列表。
dictCookies = _cookies()
jsonCookies = json.dumps(dictCookies)
# print(jsonCookies)
with open('', 'w') as f:
f.write(jsonCookies)
注意:这个jsonCookies是⼀个列表,是⼀个完整的cookie。
{'name': 'QCARJSESSIONID', 'value': 'BBmPcsfClCknfQX1cN2MLMgKXZGtFWqsBvjN9mbM9tmbL38hMmw4!1426878101', 'path': '/', 'domain':
'qcar.apiins', 'secure': False, 'httpOnly': True} {'name': 'BIGipServercar_qcar_poool', 'value': '1191316140.16671.0000', 'path': '/', 'domain': 'qcar.apiins', 'secure': False, 'httpOnly': False}
{'name': 'chinainsuranceJSESSIONID', 'value': 'rkgncsfG8pnrhh8x1CvNy46zHplyLkTjyv1LL2hk4wDrkD9Mjz9Y!2078734058', 'path': '/', 'domain': 'qcar.apiins', 'secure': False, 'httpOnly': True} {'name': 'BIGipServercar_core_pool', 'value': '1191316140.17951.0000', 'path': '/', 'domain': 'qcar.apiins', 'secure': False, 'httpOnly': False}
这样就获取到了cookie,那么如何使⽤呢,我们让浏览器对象携带cookies就⾏了,这时候⽤另外⼀个函数add_cookie()
with open('', 'r', encoding='utf8') as f:
jsessionid
listCookies = json.ad())
print('%%%%%%%%%%%%%%%%%', listCookies)
for cookie in listCookies:
obj.add_cookie(cookie)
<('qcar.apiins/qcar')
# 读取完cookie刷新页⾯
这样,我们就可以携带cookie,实现免登陆。有⼈说,你直接登陆不就完事了吗?有些应⽤场景还是⽤的到的,⽐如说验证码识别率不⾼,⽐如监视爬⾍,定时爬⾍,要求五分钟爬⼀次,两分钟爬⼀次,每次登陆会很⿇烦。这个时候我们可以分开,⼀个专门登陆抓取cookie,30分钟更新⼀次cookie⽂件。另外⼀
个读取cookie⽂件就ok了。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。