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中的decode()方法的使用

    简单介绍Python中的decode()方法的使用

    这篇文章主要介绍了简单介绍Python中的decode()方法的使用,是Python入门学习当中必须掌握的基础知识,需要的朋友可以参考下
    2015-05-05
  • 基于python模拟bfs和dfs代码实例

    基于python模拟bfs和dfs代码实例

    这篇文章主要介绍了基于python模拟bfs和dfs代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python实现的简单读写csv文件操作示例

    Python实现的简单读写csv文件操作示例

    这篇文章主要介绍了Python实现的简单读写csv文件操作,结合实例形式分析了Python使用csv模块针对csv文件进行读写操作的相关实现技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • Python猫眼电影最近上映的电影票房信息

    Python猫眼电影最近上映的电影票房信息

    这篇文章主要介绍了Python猫眼电影最近上映的电影票房信息,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Python实现socket非阻塞通讯功能示例

    Python实现socket非阻塞通讯功能示例

    这篇文章主要介绍了Python实现socket非阻塞通讯功能,结合实例形式分析了Python使用socket模块进行非阻塞通讯的原理、多线程及客户端、服务器端相关实现技巧,需要的朋友可以参考下
    2019-11-11
  • python基础之字典

    python基础之字典

    这篇文章主要介绍了python的字典,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • python列表生成式与列表生成器的使用

    python列表生成式与列表生成器的使用

    本篇文章主要介绍了python列表生成式与列表生成器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 使用Python分析数据并进行搜索引擎优化的操作步骤

    使用Python分析数据并进行搜索引擎优化的操作步骤

    在互联网时代,网站数据是一种宝贵的资源,可以用来分析用户行为、市场趋势、竞争对手策略等,本文将介绍如何使用Python爬取网站数据,并进行搜索引擎优化,,需要的朋友可以参考下
    2023-08-08
  • 使用Python实现一个简单的项目监控

    使用Python实现一个简单的项目监控

    这篇文章主要介绍了使用Python实现一个简单的项目监控,包括连接数据库进行查询等操作,需要的朋友可以参考下
    2015-03-03
  • 一篇文章带你学习Python3的高级特性(2)

    一篇文章带你学习Python3的高级特性(2)

    这篇文章主要为大家详细介绍了Python3的高阶函数,主要介绍什么是高级特性,高级特性的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论