储存 加载 cookies,实现 selenium 自动登录

通过扫描二维码、账号密码 获取cookies 信息 , 进行->储存、加载

环境: python3.6
模块: selenium 、time、pickle、os
URL: https://qzone.qq.com

from selenium import webdriver
import time
import pickle
import os


driver = webdriver.Chrome()
""""  储存 加载 cookies ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"""


# 获取 cookies
def get_coolies(cookies_name):
    # 初始化
    driver.get("https://qzone.qq.com/")
    time_sleep = input('若登录成功,请按回车:')
    if time_sleep == '':
        time.sleep(0)
        # 获取cookies
        tb_cookies = driver.get_cookies()
        # 解析cookies
        cookies = {}
        # print(tb_cookies)
        for item in tb_cookies:
            cookies[item['name']] = item['value']
        # print(cookies)
        # 保存文件
        output_path = open('%s.pickle' % cookies_name, 'wb')
        pickle.dump(cookies, output_path)
        output_path.close()
        return cookies


# 读取 cookie   可以选择cookie
def read_cookies(cookies_name):
    name = input('输入cookies文件名(回车调用cookies.pickle):')
    if name == '':
        if os.path.exists('%s.pickle' % cookies_name):
            read_path = open('%s.pickle' % cookies_name, 'rb')
            tb_cookies = pickle.load(read_path)
        else:
            tb_cookies = get_coolies(cookies_name)
    else:
        if os.path.exists('%s.pickle' % name):
            read_path = open('%s.pickle' % name, 'rb')
            tb_cookies = pickle.load(read_path)
        else:
            tb_cookies = get_coolies(cookies_name)
    return tb_cookies


# 读取 cookie
def read_cookie(cookies_name):
    if os.path.exists('%s.pickle' % cookies_name):
        read_path = open('%s.pickle' % cookies_name, 'rb')
        tb_cookies = pickle.load(read_path)
    else:
        tb_cookies = get_coolies(cookies_name)
    return tb_cookies


# 加载 cookies
def upload_cookies(cookies_name):
    # 调用 "读取cookie"  函数    read_cookies 需要手动输入cookie文件名
    tb_cookie = read_cookie(cookies_name)
    # print(tb_cookie)
    driver.get('https://qzone.qq.com/')
    # 解析cookies  并携带cookies 访问
    for cookie in tb_cookie:
        driver.add_cookie({
            "domain": '.qq.com',
            "name": cookie,
            "value": tb_cookie[cookie],
        })
    # 刷新!
    driver.get('https://qzone.qq.com/')
    print(">>> 载入 cookie 成功!")


if __name__ == '__main__':
    cookies_names = 'qq_cookies'
    upload_cookies(cookies_names)


  • js脚本无法读取到cookie信息的网站,也可以通过这个方法进行获取, 基本上全网通吃。
  • 记得修改 domain 的参数
  • 代码是以前在CSDN上搜索到的资料(找不到谁写的了,不然就备注上了),后面完善成现在这样,欢迎各位 一起交流。
    QQ:26199638(备注)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值