LanZouCloud-CMD
LanZouCloud-CMD copied to clipboard
自动读取浏览器cookie
可以加上自动读取 chrome firefox edge opera 浏览器蓝奏cookie的功能。 使用 browser_cookie3 这个模块。 原代码在Macos 打包 app 后不正常工作,我修改后可以正常工作:https://github.com/rachpt/lanzou-gui/blob/master/lanzou/browser_cookie3_n.py
def get_cookie_from_browser(site='https://pc.woozooo.com'):
"""直接读取浏览器的 cookie 数据库,优先返回 Firefox cookie,最后为 Chrome
"""
cookie = {}
domain = re.match(r".*://([^/]+)/?", site)
domain = domain.groups()[0]
domain = domain.split(".")
domain = ".".join(domain[-2:])
cookies = browser_cookie3.load(domain_name=domain)
for c in cookies:
if c.domain in site:
if c.name in ("ylogin", 'phpdisk_info'):
cookie[c.name] = c.value
return cookie
https://github.com/rachpt/lanzou-gui/blob/e37d23f1cd7fb7c5c51012c49cefb4ca39f45ddc/lanzou/gui/dialogs/login.py#L378
good idea👍 这就加上
在我电脑上面似乎没用, 有空再折腾下
ok, 加上了~
browser_cookie3
在读取浏览器的用户数据时, 使用的是 ../User Data/Default/...
路径下的配置, 但是现在不少浏览器是一个 User 一个文件夹, 比如 Chromium Edge.
添加了对 ../User Data/Profile N/...
和 ../User Data/Guest Profile/
下配置文件的扫描.
https://github.com/zaxtyson/LanZouCloud-CMD/blob/4c8b53e0279a01e87f8b246cc42381e57a41e1ca/lanzou/cmder/browser_cookie.py#L171
关于 cookie 读取的顺序问题, 我这边改成了: 找到第一个满足 domain_name
和 我们要求的 keys
的浏览器 Cookie, 防止其它浏览器登录过, 但是没有我们想要的数据.
https://github.com/zaxtyson/LanZouCloud-CMD/blob/4c8b53e0279a01e87f8b246cc42381e57a41e1ca/lanzou/cmder/browser_cookie.py#L676
此外, 我在 Ubuntu 20.04.2 LTS 虚拟机什么跑, 会出现
似乎是 GNOME Keyring 的问题, 这个地方不用 keyring 好像也没问题.
抛出来的 dbus.exceptions.DBusException
eyring.errors.InitError
都继承自 Exception
, 原作者在这里捕获 RuntimeError
似乎范围不够
https://github.com/zaxtyson/LanZouCloud-CMD/blob/4c8b53e0279a01e87f8b246cc42381e57a41e1ca/lanzou/cmder/browser_cookie.py#L155
你好,很幸运遇到了这样有想法的软件,但是我在使用过程中遇到了问题,读取edge的cookie一直显示失败,当我调用开发者页面输入相应的数据后还是显示失败是为什么?我的电脑系统是windows10
Edge 最近的新版本开始不允许浏览器运行时复制或访问 Cookies
了,建议仅保留 Firefox.
Mac上读取不了cookie,要怎么操作?谢谢