selenium+requests 对cookies的操作

2019-05-19  本文已影响0人  MkTom

selenium保存cookies

cookies = driver.get_cookies()   # 获取cookies信息
# [{'domain': 'baidu.com', 'expiry': 2145916555, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': '7100184EE9148BA1781E8E646A39AAC1:FG=1'}, {'httpOnly': False, 'name': 'BD_HOME', 'secure': False, 'value': '0'}, {'httpOnly': False, 'name': 'BD_LAST_QID', 'secure': False, 'value': '14145111259049246984'}, {'domain': 'www.baidu.com', 'expiry': 1559080787, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '1123314351'}, {'domain': 'baidu.com', 'expiry': 2565768663, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': 'BAFCB5C72B0C5D1C55D4086B1DD4BCE1'}, {'httpOnly': False, 'name': 'H_PS_PSSID', 'secure': False, 'value': '1449_21085_29063_28519_28769_28722_28963_28837_28584_28703'}, {'domain': 'baidu.com', 'expiry': 2145916555, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '1556616664'}, {'httpOnly': False, 'name': 'delPer', 'secure': False, 'value': '0'}]

with open("cookies.txt", "w") as fp:
    json.dump(cookies, fp)

selenium读取cookies

def read_cookies():
    # 设置cookies前必须访问一次百度的页面
    driver.get("http://www.baidu.com")
    with open("cookies.txt", "r") as fp:
        cookies = json.load(fp)
        for cookie in cookies:
            # cookie.pop('domain')  # 如果报domain无效的错误
            driver.add_cookie(cookie)

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

requests读取cookies

import requests
from requests.cookies import RequestsCookieJar
s = requests.session()
s.verify = False
    s.headers = {
        "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
    }
s.get("http://www.baidu.com")

#这里我们使用cookie对象进行处理
jar = RequestsCookieJar()
with open("cookies.txt", "r") as fp:
    cookies = json.load(fp)
    for cookie in cookies:
        jar.set(cookie['name'], cookie['value'])

#百度个人中心
r = s.get("https://www.baidu.com/p/setting/profile/basic", cookies=jar)

# 也可以使用字典设置
cookies_dict = dict()
with open("cookies.txt", "r") as fp:
    cookies = json.load(fp)
    for cookie in cookies:
        cookies_dict[cookie['name']] = cookie['value']
r = s.get("https://www.baidu.com/p/setting/profile/basic", cookies=cookies_dict)

r.encoding = "utf-8"
print(r.text)
上一篇 下一篇

猜你喜欢

热点阅读