selenium操作中中cookie的取值

Cookie由变量名和值组成,类似JavaScript变量。其属性里既有标准的Cookie变量,也有用户自己创建的变量,属性中变量是用“变量=值”形式来保存。
  根据Netscape公司的规定,Cookie格式如下:

  Set-Cookie: NAME=VALUE;Expires=DATE;Path=PATH;Domain=DOMAIN_NAME;SECURE

  NAME=VALUE:

  这是每一个Cookie均必须有的部分。NAME是该Cookie的名称,VALUE是该Cookie的值

 

所以一般取cookie的值代入请求的时候,一般取NAME=VALUE的字符

 

selenium:

 

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
print(browser.get_cookies())
# print(type(browser.get_cookies()))   列表内字典,包括cookie内所有类型的键值对
cookies= ";".join([dict_test["name"]+"="+dict_test["value"] for dict_test in driver.get_cookies()])
with open("zyou_cookie.txt","w",encoding="utf-8") as f:
    f.write(cookies)

 

列表生成式直接取值name=value

也可以一步一步来,

# cookie = [dict_test["name"]+"="+dict_test["value"] for dict_test in browser.get_cookies()]
# # print(cookie)                  取出["x=x","x=x"]格式列表
# cookie_str= ";".join(cookie)     取出以;分割替换的字符串,即以=字符串类型的cookie
# print(cookie_str)                  

 

举个栗子:

(利用selenium模拟登陆,然后保存cookie,之后利用保存的cookie重新登陆网站(列表生成式))

 

from selenium import webdriver
import requests

driver= webdriver.Chrome()
driver.maximize_window()
driver.get("http://kaoshi.zhiyou900.com:8888/edustu/login/login.spr")
driver.implicitly_wait(5)

driver.find_element_by_name("j_username").send_keys("17633612346")

driver.find_element_by_name("j_password").send_keys("******")
driver.find_element_by_tag_name("button").click()

cookies= ";".join([dict_test["name"]+"="+dict_test["value"] for dict_test in driver.get_cookies()])
with open("zhiyou_cookie.txt","w",encoding="utf-8") as f:
    f.write(cookies)



with open("zhiyou_cookie.txt","r",encoding="utf-8") as f:
    cookies=f.read()

headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
    "Cookie":cookies
}
response = requests.get("http://kaoshi.zhiyou900.com:8888/edustu/me/edu/meda.spr",headers=headers)
print(response.text)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值