读取google浏览器本地cookie

  浏览器与服务器建立连接时,可以直接在请求头或者响应报头中读取cookie,但浏览器关闭时,会把cookie保存在本地文件中,

存放的形式是以 sqlite3 数据库形式存在,以后是获取google本地文件cookie的方法;

import sqlite3
import win32crypt
import os
def parseGoogleCookiefile(cookiesFiles,host=''):
"""
:param cookiesFiles: cookies文件本地路径
:param host: 服务器域名
:return: type:list
"""
cookies = []
if not os.path.exists(cookiesFiles): #判断cookie文件是否存在
print("cookies files not exist!")
else:
con = sqlite3.connect(cookiesFiles)
conner = con.cursor()
if host=="":
sql="select host_key,name,encrypted_value,path from cookies" #由于cookie文件是sqlite类型,一个文件相当于一个表,sql
for host_key, name, encrypted_value, path in conner.execute(sql).fetchall(): #遍历查询的所有结果
parameter=[]
parameter.append("domain : %s"%host_key)
parameter.append("name : %s"%name)
parameter.append("values : %s"%win32crypt.CryptUnprotectData(encrypted_value)[1].decode()) #将byte类型转译
if len(conner.execute(sql).fetchall())<=1:
cookies=parameter
else:
cookies.append(parameter)
else:
sql = "select host_key,name,encrypted_value from cookies where host_key='%s'" % host
#cookies = {name: win32crypt.CryptUnprotectData(encrypted_value)[1].decode() for host_key, name, encrypted_value in conner.execute(sql).fetchall()}
for host_key, name, encrypted_value in conner.execute(sql).fetchall():
parameter=[]
parameter.append("domain : %s" % host_key)
parameter.append("name : %s" % name)
parameter.append("values : %s" % win32crypt.CryptUnprotectData(encrypted_value)[1].decode())
if len(conner.execute(sql).fetchall())<=1:
cookies=parameter
else:
cookies.append(parameter)
print(cookies)
return cookies

if __name__=="__main__":
#parseGoogleCookiefile(r"C:\UsersliuwqAppDataLocalGoogleChromeUser DataDefaultCookies",'www.baidu.com')
parseGoogleCookiefile(r"C:\UsersliuwqAppDataLocalGoogleChromeUser DataDefaultCookies")



原文地址:https://www.cnblogs.com/whitemouseV2-0/p/12623932.html