我正在尝试从其数据库(cookies.sqlite)中提取FF cookie。然而,似乎只有带有过期日期的cookie才能在那里找到(我正在搜索在会话结束时过期的cookie)。我甚至打开了FF的“记住打开的选项卡”功能。我不明白它们之间的根本区别。我可以在FF UI中看到cookie,但无法在硬盘上找到。
欢迎任何答案。
欢迎任何答案。
会话Cookie存储在sessionstore.js
文件中。
该文件本质上是一个JSON对象。如果您解析它,请查看windows[0].cookies
下的数组以获取会话Cookie。
通常,每个会话Cookie中只有{name,host,path,value}
等字段,但偶尔会看到一个httpOnly
参数。
import requests
import browser_cookie
cj = browser_cookie.firefox()
r = requests.get('http://stackoverflow.com', cookies=cj)
cookie_files = glob.glob(os.path.expanduser('~/.mozilla/firefox/*.default*/cookies.sqlite'))
。我的Linux系统上Firefox配置文件目录是这个:/home/rushil/.mozilla/firefox/2391y7t8.default-1435311139613
,而你的代码找不到它。此外,我从cookies.sqlite文件中获取的Cookie并不完整。我从Firefox浏览器的Cookie管理器插件中获得了更多的Cookie。而且没有其他的.sqlite文件包含那些Cookie。有什么想法吗? - Rushil Paul会话 cookie 可能保存在内存中,一旦选项卡/浏览器关闭,就会被删除,从未进入数据库。
sessionrestore.js
。我认为它被recovery.js
所替代,具有相同的结构。 - Jabba