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中表达式i += x与i = i + x是否等价
Feb 08 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
python跳出双层for循环的解决方法
Jun 24 Python
python 数据提取及拆分的实现代码
Aug 26 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
Sep 30 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
python定义具名元组实例操作
Feb 28 Python
python3 字符串str和bytes相互转换
Mar 23 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访问数据库集群的方法小结
2016/03/14 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
javascript全局变量封装模块实现代码
2012/11/28 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
Vue中的字符串模板的使用
2018/05/17 Javascript
Python开发的实用计算器完整实例
2017/05/10 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python sorted函数的小练习及解答
2019/09/18 Python
Python实现图像的垂直投影示例
2020/01/17 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
导游词400字
2015/02/13 职场文书
2015年组织部工作总结
2015/04/03 职场文书
金陵十三钗观后感
2015/06/04 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android