cookie处理_1.17

本文介绍了Cookie,它是存储在用户本地终端的文本信息,可帮助Web站点保存访问者信息,实现自动登录等。还阐述了WebDriver操作Cookie的方法,如获取、添加、删除等,并通过代码示例展示了在百度页面上获取、对比登录前后的Cookie等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介:

什么是cookie

cookie是存储在用户本地终端上的数据,实际上是一小段的文本信息

cookie作用

帮助web站点保存有关访问者的信息,方便用户的访问。如记住用户名密码实现自动登录

可以把cookie理解为自己账号的身份证。因为http协议是无状态的,上一个请求和下一个请求没有关系。但是有时需要关联。比如登录之后,才能进行操作这样的设置。登录成功时,服务器会给浏览器一个cookie,浏览器会解析存在本地。然后同一个网站,下一次请求时就会把这个cookie带上,告诉服务器是哪个用户在操作。在关闭浏览器时cookie有效期结束。

 

二、webdriver 提供了一些用来操作cookie的方法:

get_cookies():

获得cookie所有信息,返回的时一个字典

get_cookie(name='key'):

获取指定name的cookie,返回字典的key值

add_cookie(cookie_dict):

手动添加cookie,需要传一个字典进去,用cookie_dict来接收,字典的键必须有'name'和'value'

delete_cookie(name):

删除cookie信息,name是要删除的cookie的名称

delete_all_cookies():

删除所有cookie信息

 

举例:

1、获取cookies:get_cookies()

(1)获取cookies方法直接用:

(2)启动火狐浏览器,获取cookies,打印出来发现是空:[ ]

(3)打开百度首页后,重新获取cookies,打印出来就有值

from selenium import webdriver

driver=webdriver.Firefox()

coo=driver.get_cookies()

print(coo)

driver.get("https://www.baidu.com")

co1=driver.get_cookies()

print(co1)

print(co1[0]) #打印第一组元素

driver.quit()

 

2、登录后的cookies

(1)先登录百度,输入自己的用户名和密码

(2)重新获取cookies,与之前的对比,不一样了

(3)主要是找到这一个cookie,发现它的name和value发生了变化,这就是未登录和已登录的区别

from selenium import webdriver

import time

driver=webdriver.Firefox()

driver.get("https://www.baidu.com")

print(driver.get_cookies())

time.sleep(3)

driver.find_element_by_link_text("登录").click()

time.sleep(5)

#选择用户名登录

driver.find_element_by_css_selector("#TANGRAM__PSP_10__footerULoginBtn").click()

driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys('1**********')

driver.find_element_by_id("TANGRAM__PSP_10__password").send_keys("x********")

driver.find_element_by_id("TANGRAM__PSP_10__submit").click()

print(driver.get_cookies())

 

3、获取指定name的cookie:driver.get_cookie(name)

(1)获取cookies发现里面有多个cookie,有时候我们只需要其中一个,把重要的提出来,比如登录cookie

(2)这里用get_cookie(name),指定对应的cookie的name值就行了

print(driver.get_cookie(name='BDUSS'))

 

4、清除指定

(1)为了进一步验证上一步获取到的就是登录的cookie,可以删除它看看页面什么变化

(2)删除这个cookie后刷新页面,发现刚才登录已经失效,变成未登录的状态了

driver.delete_cookie(name='******')

print(driver.get_cookies())

driver.refresh()

 

5、清除所有的cookies:delete_all_cookies()

(1)清除所有的cookies后登录状态也失效了,cookies为空 [ ]

driver.delete_all_cookies()

print(driver.get_cookies()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值