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常规方法实现数组的全排列
Mar 17 Python
自己编程中遇到的Python错误和解决方法汇总整理
Jun 03 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python中的单继承与多继承实例分析
May 10 Python
python简单实现AES加密和解密
Mar 28 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
python 穷举指定长度的密码例子
Apr 02 Python
python对接ihuyi实现短信验证码发送
May 10 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
php实现微信支付之企业付款
2018/05/30 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
python实现矩阵乘法的方法
2015/06/28 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
python 字典套字典或列表的示例
2019/12/16 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
生日邀请函范文
2014/01/13 职场文书
大学活动总结模板
2014/07/10 职场文书
建筑结构施工求职信
2014/07/11 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
信仰纪录片观后感
2015/06/08 职场文书
初中地理教学反思
2016/02/19 职场文书
详解Laravel制作API接口
2021/05/31 PHP
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android