代码逻辑很简单:
- 使用
browsercookie
这个库先获取某个浏览器存储在本地cookie 文件中的所有 cookie;(如果是在 OSX 下,需要输入当前用户的密码,因为解密 chrome 的 cookie 文件需要从钥匙串中获取密钥) - 根据 cookie 的
domain
属性来提取特定域名下的所有 cookie; - 将提取到的 cookie 作为一个元素为字典的列表返回;
import json
import browsercookie
def get_cookies(domain, browser='chrome'):
browser_cookies = getattr(browsercookie, browser.lower())()
domain_specified_cookies = [c for c in browser_cookies if domain in c.domain]
cookies = [
{
'name': getattr(cookie, 'name'),
'value': getattr(cookie, 'value'),
'path': getattr(cookie, 'path'),
'domain': getattr(cookie, 'domain'),
'secure': bool(getattr(cookie, 'secure')),
'expires': getattr(cookie, 'expires')
}
for cookie in domain_specified_cookies
]
return cookies