
如题,目前有一个比较复杂的登录验证系统,简单来说分为两步,先经过一个比较正常的 web 登录验证( jwt 实现),验证成功后跳转到另外一个域下的网址,弹出一个 Basic Auth 验证。
不论顺序,网页需要经过双重认证之后才能显示内容。
用 Python3 + selenium 搞模拟的话遇到问题就是 Basic Auth 不知道怎么过。
根据网上查找到的内容,只需要将网址改为https://用户名:密码 @www.baidu.com(假设网址是百度)就能自动通过验证而不用弹出框,实测无效。
而后根据网上查找信息说,需要单独设置浏览器的 Preference 才能让上述方法有效,于是我添加了下面的代码
from selenium import webdriver optiOns= webdriver.ChromeOptions() options.add_experimental_option("prefs" , {'network.http.phishy-userpass-length':255}) driver = webdriver.Chrome(optiOns= options) driver.get("https://username:[email protected]") # ... 结果仍然无效。
有没有带佬看出来啥原因了
1 royzheng 2020 年 10 月 30 日 via iPhone 请在 http headet 里添加 basic auth 信息,具体你用 chrome basic auth 后访问那些页面看头部 |
2 elfive 2020 年 10 月 30 日 via iPhone |