selenium中get_cookies()和add_cookie()的用法详解
在用selenium爬取网页的时候,有时候需要登陆,这时候用selenium获取cookie和携带cookie是很方便的,获取cookie可以通过内置的函数get_cookies(),它得到的是一组cookie,是由cookie组成的列表。单个的cookie是字典组成的,所有get_cookies()返回值是由字典组成的列表。
dictCookies=browser.get_cookies() jsonCookies=json.dumps(dictCookies) #print(jsonCookies) withopen('anquan.txt','w')asf: f.write(jsonCookies)
注意:这个jsonCookies是一个列表,是一个完整的cookie。
{'name':'QCARJSESSIONID','value':'BBmPcsfClCknfQX1cN2MLMgKXZGtFWqsBvjN9mbM9tmbL38hMmw4!1426878101','path':'/','domain':'qcar.apiins.com','secure':False,'httpOnly':True} {'name':'BIGipServercar_qcar_poool','value':'1191316140.16671.0000','path':'/','domain':'qcar.apiins.com','secure':False,'httpOnly':False} {'name':'chinainsuranceJSESSIONID','value':'rkgncsfG8pnrhh8x1CvNy46zHplyLkTjyv1LL2hk4wDrkD9Mjz9Y!2078734058','path':'/','domain':'qcar.apiins.com','secure':False,'httpOnly':True} {'name':'BIGipServercar_core_pool','value':'1191316140.17951.0000','path':'/','domain':'qcar.apiins.com','secure':False,'httpOnly':False}
这样就获取到了cookie,那么如何使用呢,我们让浏览器对象携带cookies就行了,这时候用另外一个函数add_cookie()
withopen('anquan.txt','r',encoding='utf8')asf: listCookies=json.loads(f.read()) print('%%%%%%%%%%%%%%%%%',listCookies) forcookieinlistCookies: obj.add_cookie(cookie) obj.get('https://qcar.apiins.com/qcar') #读取完cookie刷新页面 obj.refresh()
这样,我们就可以携带cookie,实现免登陆。有人说,你直接登陆不就完事了吗?有些应用场景还是用的到的,比如说验证码识别率不高,比如监视爬虫,定时爬虫,要求五分钟爬一次,两分钟爬一次,每次登陆会很麻烦。这个时候我们可以分开,一个专门登陆抓取cookie,30分钟更新一次cookie文件。另外一个读取cookie文件就ok了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。