gpt4 book ai didi

javascript - Web 抓取需要使用/Javascript 警报进行身份验证的内部站点

转载 作者:行者123 更新时间:2023-11-29 20:57:19 25 4
gpt4 key购买 nike

我一直在尝试从公司内部站点(出于安全目的排除 url)抓取一些原始 XML 数据。我目前正在使用 selenium 和 beautifulsoup 这样做(但我对任何其他选项持开放态度)。手动访问网站时,系统会提示我输入用户名和密码的 javascript 浏览器警报(见图)。我尝试自动验证凭据如下(未通过身份验证):

def main():
#gets specified list of direct reports
# username:password@
url ="http://{username}:{password}@myURL.com"
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
# parsing logic follows ...

但是,当脚本运行时,我仍然需要在 chromedriver 控制的浏览窗口中手动输入用户名和密码,然后程序的其余部分按预期运行。

有没有办法避免这种手动输入?我也尝试过围绕 driver.alert 和向浏览器发送 key 和凭据的解决方案无济于事。(我知道这可能很困难,因为该站点无法在网络外部访问,任何见解都值得赞赏!)

编辑:我应该提一下这个方法在几个星期前是有效的,但是在 chrome 更新之后就不再有效了..

Authentication pop-up

最佳答案

您的登录过程可能会返回某种访问 token ,响应正文中的值或带有 token 的 header ,可能是 Authorization header 或 Set-Cookie header 。

在大多数情况下,您需要随每个 请求发送该 token ,作为授权 header 、正文参数或页面期望的任何内容。

您的工作是在您进行身份验证时通过检查服务器的响应来找到该 token ,将其存储在某个地方,并在您每次向服务器发出页面请求时将其发回。

如何将其发回取决于相关服务器的要求。它可能需要请求主体参数或 header ,这是最有可能的两种情况。

关于javascript - Web 抓取需要使用/Javascript 警报进行身份验证的内部站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com