python3实现读取chrome浏览器cookie

 更新时间:2016年06月19日 16:59:17   作者:黑暗圣堂武士  
这里给大家分享的是python3读取chrome浏览器的cookie(CryptUnprotectData解密)的代码,主要思路是读取到的cookies被封装成字典,可以直接给requests使用。

好几年前我在做一些自动化的脚本时,脑子里也闪过这样的想法:能不能直接把浏览器的cookies取出来用呢?

直到昨天看到代码《python模拟发送动弹》,想起来当年我也曾经有类似的想法没能完成,那就优先拿这个练手,之后的代码也会用这个功能。

直接从浏览器中取出cookies,有以下好处和用途:

1、不需要配置用户密码,直接读出浏览器中cookies就得到一样的身份,用来完成各种自动化操作。

2、部分网站登录会更新Session,会导致之前成功登录的Session失效,与浏览器使用相同的Session,不用进行登录操作,不会互相挤下线。

3、全是废话,我不想写了,行吗?

使用到软件的sqlite3的图形管理工具有:

SQLiteDatabaseBrowserPortable https://www.jb51.net/database/251740.html

sqlitespy https://www.jb51.net/database/18390.html

使用到的python库有:

sqlite3 python标准库,不需要下载安装

pywin32 pywin32 windows的API库,让python可以调用各种各样的windows API,代码中用到的win32crypt就是属于pywin32库的一部分。 建议手动下载对应版本pywin32安装 https://www.jb51.net/softs/416136.html https://www.jb51.net/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 中下划线的几种用法(_、_xx、xx_、__xx、__xx__)

    Python 中下划线的几种用法(_、_xx、xx_、__xx、__xx__)

    本文主要介绍了Python 中下划线的几种用法(_、_xx、xx_、__xx、__xx__),详细的介绍了这几种下划线的用处,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • python的ping网络状态监测的实现(含多IP)

    python的ping网络状态监测的实现(含多IP)

    本文主要介绍了python的ping网络状态监测的实现(含多IP),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python工程实践之np.loadtxt()读取数据

    Python工程实践之np.loadtxt()读取数据

    为了方便使用和记忆,有时候我们会把numpy.loadtxt()缩写成np.loadtxt(),这篇文章主要给大家介绍了关于Python工程实践之np.loadtxt()读取数据的相关资料,需要的朋友可以参考下
    2023-07-07
  • Python实现bilibili时间长度查询的示例代码

    Python实现bilibili时间长度查询的示例代码

    这篇文章主要介绍了Python实现bilibili时间长度查询的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 解决CentOS下ImportError: No module named '_sqlite3'的问题

    解决CentOS下ImportError: No module named &a

    这篇文章主要介绍了解决CentOS下ImportError: No module named '_sqlite3'的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python使用pymysql模块操作MySQL

    python使用pymysql模块操作MySQL

    本文讲述了python操作mysql基础实例展示,包含pymysql的使用,tkinter的使用,感兴趣的朋友可以参考下
    2021-06-06
  • 深入理解Python中字典的键的使用

    深入理解Python中字典的键的使用

    这篇文章主要介绍了深入理解Python中字典的键的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • Python使用matplotlib 模块scatter方法画散点图示例

    Python使用matplotlib 模块scatter方法画散点图示例

    这篇文章主要介绍了Python使用matplotlib 模块scatter方法画散点图,结合实例形式分析了Python数值运算与matplotlib模块图形绘制相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python十类常见异常类型总结(附捕获及异常处理方式)

    Python十类常见异常类型总结(附捕获及异常处理方式)

    在编写程序时难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误等等,这篇文章主要给大家介绍了关于Python十类常见异常类型总结的相关资料,文中还附捕获及异常处理方式,需要的朋友可以参考下
    2023-06-06
  • SVM算法的理解及其Python实现多分类和二分类问题

    SVM算法的理解及其Python实现多分类和二分类问题

    这篇文章主要介绍了SVM算法的理解及其Python实现多分类和二分类问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论