python获取浏览器cookie_python3实现读取chrome浏览器cookie

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

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

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

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

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

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

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

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

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

使用到的python库有:

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

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

本文标题: python3实现读取chrome浏览器cookie

本文地址: http://www.cppcns.com/jiaoben/python/153867.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是读取浏览器cookiesPython脚本: ```python import sqlite3 import os def get_cookies_from_chrome(): # 获取Chrome浏览器cookies cookies_file = os.path.expanduser('~') + r"\AppData\Local\Google\Chrome\User Data\Default\Cookies" conn = sqlite3.connect(cookies_file) cursor = conn.cursor() cursor.execute("SELECT host_key, name, value FROM cookies") cookies = cursor.fetchall() conn.close() return cookies def get_cookies_from_firefox(): # 获取Firefox浏览器cookies cookies_file = os.path.expanduser('~') + r"\AppData\Roaming\Mozilla\Firefox\Profiles\*.default\cookies.sqlite" conn = sqlite3.connect(cookies_file) cursor = conn.cursor() cursor.execute("SELECT host, name, value FROM moz_cookies") cookies = cursor.fetchall() conn.close() return cookies # 调用函数获取浏览器cookies chrome_cookies = get_cookies_from_chrome() firefox_cookies = get_cookies_from_firefox() # 输出浏览器cookies print("Chrome浏览器cookies:") for cookie in chrome_cookies: print(cookie) print("Firefox浏览器cookies:") for cookie in firefox_cookies: print(cookie) ``` 该脚本可以读取Chrome和Firefox浏览器cookies,并将其输出到控制台。其中,Chrome浏览器cookies文件路径为`C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default\Cookies`,Firefox浏览器cookies文件路径为`C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profiles\*.default\cookies.sqlite`。请将其中的`用户名`替换为您的Windows用户名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值