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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
python实现日志按天分割
Jul 22 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Python中的延迟绑定原理详解
Oct 11 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
Keras 使用 Lambda层详解
Jun 10 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
python实现文件+参数发送request的实例代码
Jan 05 Python
python drf各类组件的用法和作用
Jan 12 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
咖啡的种类和口感
2021/03/03 新手入门
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
小学科学教学反思
2014/01/26 职场文书
公司节能减排方案
2014/05/16 职场文书
企业承诺书怎么写
2014/05/24 职场文书
2014年检察院个人工作总结
2014/12/09 职场文书
搞笑老公保证书
2015/02/26 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书