Python爬虫selenium中get_cookies()和add_cookie()的用法


 

在用selenium爬取网页的时候,有时候需要登陆,这时候用selenium获取cookie和携带cookie是很方便的,获取cookie可以通过内置的函数get_cookies(),它得到的是一组cookie,是由cookie组成的列表。单个的cookie是字典组成的,所有get_cookies()返回值是由字典组成的列表。

1
2
3
4
5
dictCookies = browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# print(jsonCookies)
with open( 'anquan.txt' 'w' as  f:
    f.write(jsonCookies)

 注意:这个jsonCookies是一个列表,是一个完整的cookie。

1
2
3
4
{ '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()

1
2
3
4
5
6
7
8
with  open ( 'anquan.txt' 'r' , encoding = 'utf8' ) as f:
       listCookies  =  json.loads(f.read())
   print ( '%%%%%%%%%%%%%%%%%' , listCookies)
   for  cookie  in  listCookies:
       obj.add_cookie(cookie)
   obj.get( 'https://qcar.apiins.com/qcar' )
   # 读取完cookie刷新页面
   obj.refresh()

 

 这样,我们就可以携带cookie,实现免登陆。有人说,你直接登陆不就完事了吗?有些应用场景还是用的到的,比如说验证码识别率不高,比如监视爬虫,定时爬虫,要求五分钟爬一次,两分钟爬一次,每次登陆会很麻烦。这个时候我们可以分开,一个专门登陆抓取cookie,30分钟更新一次cookie文件。另外一个读取cookie文件就ok了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM