LanZouCloud-CMD icon indicating copy to clipboard operation
LanZouCloud-CMD copied to clipboard

自动读取浏览器cookie

Open rachpt opened this issue 3 years ago • 6 comments

可以加上自动读取 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

rachpt avatar Mar 03 '21 14:03 rachpt

good idea👍 这就加上

zaxtyson avatar Mar 04 '21 13:03 zaxtyson

在我电脑上面似乎没用, 有空再折腾下

zaxtyson avatar Mar 04 '21 14:03 zaxtyson

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 虚拟机什么跑, 会出现 image

似乎是 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

zaxtyson avatar Mar 06 '21 09:03 zaxtyson

你好,很幸运遇到了这样有想法的软件,但是我在使用过程中遇到了问题,读取edge的cookie一直显示失败,当我调用开发者页面输入相应的数据后还是显示失败是为什么?我的电脑系统是windows10

liuyiwei521 avatar Mar 22 '23 06:03 liuyiwei521

Edge 最近的新版本开始不允许浏览器运行时复制或访问 Cookies 了,建议仅保留 Firefox.

ZhangTianrong avatar Oct 29 '23 03:10 ZhangTianrong

Mac上读取不了cookie,要怎么操作?谢谢

w00118501 avatar Apr 28 '24 00:04 w00118501