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设置windows桌面壁纸的实现代码
Jan 28 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
django框架cookie和session用法实例详解
Dec 10 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
python实现数字炸弹游戏
Jul 17 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
如何在向量化NumPy数组上进行移动窗口
May 18 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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
SONY SRF-M100的电路分析
2021/03/02 无线电
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
php实现的递归提成方案实例
2015/11/14 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
python自带的http模块详解
2016/11/06 Python
Python实现选择排序
2017/06/04 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
2015年采购工作总结
2015/04/10 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技