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学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
python 写一个文件分发小程序
Dec 05 Python
python中函数返回多个结果的实例方法
Dec 16 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 Python
Python入门学习之类的相关知识总结
May 25 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 mssql 时间格式问题
2009/01/13 PHP
php 文章调用类代码
2011/08/11 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
短信提示使用 特效
2007/01/19 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
Python语法分析之字符串格式化
2019/06/13 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
Java的基础面试题附答案
2016/01/10 面试题
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
小学生暑假感言
2014/02/06 职场文书
大学生毕业求职信
2014/06/12 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python