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 相关文章推荐
深入理解NumPy简明教程---数组2
Dec 17 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
numpy np.newaxis 的实用分享
Nov 30 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
五种Python转义表示法
Nov 27 Python
python中如何对多变量连续赋值
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
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
js数组操作学习总结
2013/11/04 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
jQuery插件简单学习实例教程
2016/07/01 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
用python计算文件的MD5值
2020/12/23 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
美国汽车交易网站:Edmunds
2016/08/17 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
应聘教师求职信
2014/07/19 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
财务会计实训报告
2014/11/05 职场文书
高三语文复习计划
2015/01/19 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
Golang的继承模拟实例
2021/06/30 Golang