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 相关文章推荐
Django实现自定义404,500页面教程
Mar 26 Python
python设置值及NaN值处理方法
Jul 03 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
Python制作exe文件简单流程
Jan 24 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
python flask几分钟实现web服务的例子
Jul 26 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
详解Python小数据池和代码块缓存机制
Apr 07 Python
新手必备Python开发环境搭建教程
May 28 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生成plist数据的方法
2015/06/16 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
详解Vue之计算属性
2020/06/20 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
一月红领巾广播稿
2014/02/11 职场文书
商务助理求职信范文
2014/04/20 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
单位工作证明范本
2015/06/15 职场文书
主婚人致辞精选
2015/07/28 职场文书
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
Spring Boot 实现 WebSocket
2022/04/30 Java/Android