python中使用selenium获取登录后的cookie

当我们每次使用chromedriver的时候,此时相当于一个无痕的浏览器模式,为了方便后期操作,所以需要提前提取cookies。

逻辑说明:首先打开浏览器,然后请求所需的网址,等待20秒(留出来手动登录的时间),然后提取cookie,在关闭浏览器,会在代码程序,同目录生成一个cookies.txt

代码:

from selenium import webdriver
import time
import json

#cookie保存到本程序的同目录下
# 填写webdriver的保存目录
driver = webdriver.Chrome()
# 记得写完整的url 包括http和https
driver.get('http://www.baidu.com')
# 延迟20秒
time.sleep(20)
with open('cookies.txt','w') as f:
    # 将cookies保存为json格式
    f.write(json.dumps(driver.get_cookies()))
driver.close()#关闭浏览器

使用已经提取的cookies

from selenium import webdriver
import json
import os
import time
from selenium.common.exceptions import NoSuchElementException
import time


# 打开网址
Chrome = webdriver.Chrome()
# 等待3秒
Chrome.implicitly_wait(3)
# wb.maximize_window()
Chrome.get('https://www.baidu.com')
time.sleep(5)

# 向浏览器添加保存的cookies
try:
    cookies = json.load(open("cookies.txt", "rb"))
    for cookie in cookies:
        cookie_dict = {
            "domain": cookie.get('domain'),
            'name': cookie.get('name'),
            'value': cookie.get('value'),
            "expires": "",
            'path': '/',
            'httpOnly': True,
            'HostOnly': False,
            'Secure': False}
        Chrome.add_cookie(cookie_dict)
except Exception as e:
    print(e)

Chrome.refresh()

你可能感兴趣的:(selenium,Python,Python案例,python,selenium,chrome)