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检测服务器是否正常
Feb 16 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
Mar 30 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
python安装教程 Pycharm安装详细教程
May 02 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
python绘制直线的方法
Jun 30 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
python常见的占位符总结及用法
Jul 02 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编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
C语言编程练习
2012/04/02 面试题
技术人员面试提纲
2013/11/28 职场文书
大学生村官考核材料
2014/05/23 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
写给领导的感谢信
2015/01/22 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫