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 相关文章推荐
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
Python编写屏幕截图程序方法
Feb 18 Python
python实现登陆知乎获得个人收藏并保存为word文件
Mar 16 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
使用TensorFlow实现SVM
Sep 06 Python
学生信息管理系统python版
Oct 17 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
使用Python实现文字转语音并生成wav文件的例子
Aug 08 Python
django重新生成数据库中的某张表方法
Aug 28 Python
QML用PathView实现轮播图
Jun 03 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
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
js显示文本框提示文字的方法
2015/05/07 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
vue元素实现动画过渡效果
2017/07/01 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python实现快速多线程ping的方法
2015/07/15 Python
Python数据结构之翻转链表
2017/02/25 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
会计专业自我鉴定
2014/02/10 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
六年级语文教学反思
2016/03/03 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
导游词之镇江焦山
2019/11/21 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
golang为什么要统一错误处理
2022/04/03 Golang