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实现的文件同步服务器实例
Jun 02 Python
利用ctypes提高Python的执行速度
Sep 09 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
python async with和async for的使用
Jun 20 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
python MD5加密的示例
Oct 19 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 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
星际实力自我测试
2020/03/04 星际争霸
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP链表操作简单示例
2016/10/15 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
python fabric使用笔记
2015/05/09 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python实现简单多线程任务队列
2016/02/27 Python
python生成随机红包的实例写法
2019/09/02 Python
详解Django CAS 解决方案
2019/10/30 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
英语国培研修感言
2014/02/13 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
交通安全月活动总结
2015/05/08 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python