python3实现读取chrome浏览器cookie


Posted in Python onJune 19, 2016

好几年前我在做一些自动化的脚本时,脑子里也闪过这样的想法:能不能直接把浏览器的cookies取出来用呢?

直到昨天看到代码《python模拟发送动弹》,想起来当年我也曾经有类似的想法没能完成,那就优先拿这个练手,之后的代码也会用这个功能。

直接从浏览器中取出cookies,有以下好处和用途:

1、不需要配置用户密码,直接读出浏览器中cookies就得到一样的身份,用来完成各种自动化操作。

2、部分网站登录会更新Session,会导致之前成功登录的Session失效,与浏览器使用相同的Session,不用进行登录操作,不会互相挤下线。

3、全是废话,我不想写了,行吗?

使用到软件的sqlite3的图形管理工具有:

SQLiteDatabaseBrowserPortable https://3water.com/database/251740.html

sqlitespy https://3water.com/database/18390.html

使用到的python库有:

sqlite3 python标准库,不需要下载安装

pywin32 pywin32 windows的API库,让python可以调用各种各样的windows API,代码中用到的win32crypt就是属于pywin32库的一部分。 建议手动下载对应版本pywin32安装 https://3water.com/softs/416136.html https://3water.com/softs/416131.html

requests requests是一个相对比较简单易用的http库,用来代替urllib23之类的标准库,使用命令安装pip install requests

看代码:

import os
import sqlite3
import requests
from win32.win32crypt import CryptUnprotectData

def getcookiefromchrome(host='.oschina.net'):
  cookiepath=os.environ['LOCALAPPDATA']+r"\Google\Chrome\User Data\Default\Cookies"
  sql="select host_key,name,encrypted_value from cookies where host_key='%s'" % host
  with sqlite3.connect(cookiepath) as conn:
    cu=conn.cursor()    
    cookies={name:CryptUnprotectData(encrypted_value)[1].decode() for host_key,name,encrypted_value in cu.execute(sql).fetchall()}
    print(cookies)
    return cookies

#运行环境windows 2012 server python3.4 x64 chrome 50
#以下是测试代码
#getcookiefromchrome()
#getcookiefromchrome('.baidu.com')

url='http://my.oschina.net/'

httphead={'User-Agent':'Safari/537.36',}

#设置allow_redirects为真,访问http://my.oschina.net/ 可以跟随跳转到个人空间
r=requests.get(url,headers=httphead,cookies=getcookiefromchrome('.oschina.net'),allow_redirects=1)
print(r.text)
Python 相关文章推荐
简单解析Django框架中的表单验证
Jul 17 Python
详解Python函数作用域的LEGB顺序
May 14 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
python3.5安装python3-tk详解
Apr 26 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
Django之路由层的实现
Sep 09 Python
Python2与Python3的区别点整理
Dec 12 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 Python
如何Python使用re模块实现okenizer
Apr 30 Python
python3 实现的人人影视网站自动签到
Jun 19 #Python
python3实现暴力穷举博客园密码
Jun 19 #Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 #Python
Python中使用装饰器来优化尾递归的示例
Jun 18 #Python
举例讲解Python面向对象编程中类的继承
Jun 17 #Python
浅谈python为什么不需要三目运算符和switch
Jun 17 #Python
python运行时间的几种方法
Jun 17 #Python
You might like
用php简单实现加减乘除计算器
2014/01/06 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
python自动化测试之连接几组测试包实例
2014/09/28 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python 实现多线程下载视频的代码
2019/11/15 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Python安装OpenCV的示例代码
2020/03/05 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
说出一些常用的类,包,接口
2014/09/22 面试题
教师年终个人自我评价
2013/10/04 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
股份转让协议书
2014/04/12 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
平安建设工作方案
2014/06/02 职场文书
大班下学期个人总结
2015/02/13 职场文书
升学宴来宾致辞
2015/07/27 职场文书
JavaScript实现音乐播放器
2022/08/14 Javascript