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文件比较示例分享
Jan 10 Python
Python中函数的多种格式和使用实例及小技巧
Apr 13 Python
对于Python编程中一些重用与缩减的建议
Apr 14 Python
Python中文字符串截取问题
Jun 15 Python
python中正则表达式的使用方法
Feb 25 Python
python增加矩阵维度的实例讲解
Apr 04 Python
django自带的server 让外网主机访问方法
May 14 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
Python request post上传文件常见要点
Nov 20 Python
Python的collections模块真的很好用
Mar 01 Python
如何利用python创作字符画
Jun 25 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
Cannot modify header information错误解决方法
2008/10/08 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
PHP attributes()函数讲解
2019/02/03 PHP
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
numpy库reshape用法详解
2020/04/19 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
大学生简单自荐信
2013/11/10 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
妈妈别哭观后感
2015/06/08 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书