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 相关文章推荐
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
Python抓取百度查询结果的方法
Jul 08 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
python机器学习之随机森林(七)
Mar 26 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
python3中eval函数用法使用简介
Aug 02 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
关于python 跨域处理方式详解
Mar 28 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 Python
python实现简单的三子棋游戏
Apr 28 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下删除一篇文章生成的多个静态页面
2010/08/08 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
php使用正则验证中文
2016/04/06 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python单链表简单实现代码
2016/04/27 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python多线程下信号处理程序示例
2019/05/31 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
应届生学校辅导员求职信
2013/11/07 职场文书
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
产品质量保证书
2014/04/29 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
诚信贷款承诺书
2014/05/30 职场文书
教师创先争优承诺书
2015/04/27 职场文书
旅游项目合作意向书
2015/05/08 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python