通过扫描二维码、账号密码 获取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(备注)