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提取html文件中的特定数据的实现代码
Mar 24 Python
python 网络编程详解及简单实例
Apr 25 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
python基于openpyxl生成excel文件
Dec 23 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
python中pyqtgraph知识点总结
Jan 26 Python
Python list去重且保持原顺序不变的方法
Apr 03 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 获取mysql数据库信息代码
2009/03/12 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
php smtp实现发送邮件功能
2017/06/22 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
微信小程序实现全国机场索引列表
2018/01/31 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
利用django如何解析用户上传的excel文件
2017/07/24 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
工程安全员岗位职责
2014/03/09 职场文书
开工仪式主持词
2014/03/20 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
聘任证明怎么写
2015/03/02 职场文书
部门优秀员工推荐信
2015/03/24 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫