gpt4 book ai didi

python - 显示警报时从窗口警报中刮取警报文本

转载 作者:行者123 更新时间:2023-11-28 17:58:18 24 4
gpt4 key购买 nike

我正在使用 python 请求库和 BeautifulSoup。当请求无效时,有一个 URL,它返回 HTML 并弹出 alert()。Beautifulsoup 中的问题是我无法获取 window.alert 弹出文本。

我尝试使用 this answer 中的正则表达式方法但它似乎不起作用。

因此在做的时候:

for script in soup.find_all("script"):
alert = re.findall(r'(?<=alert\(\").+(?=\")', script.text)

脚本永远不会得到执行的脚本。

这是我正在提取的脚本:

<script language="JavaScript">
if(top.frames.length != 0) {
location.href="frame_break.jsp"
}
</script>

<html>
<body>

</body>
</html>


<script>
var err='User ID';
alert(err);
iBankForm.action='login.jsp';
iBankForm.submit();
</script>

我希望收到提示文本,即 User ID。我注意到如果我有标签,我无法在下面抓取脚本如果我删除脚本或将脚本移动到 body 标签中,那么我可以获得

<script>
var err='User ID';
alert(err);
iBankForm.action='login.jsp';
iBankForm.submit();
</script>

最佳答案

使用html5lib解析器库解决如果您阅读文档 https://www.crummy.com/software/BeautifulSoup/bs4/doc/它以与网络浏览器相同的方式解析页面这样就可以获取body标签外的脚本了

soup = BeautifulSoup(payload, 'html5lib')
errors = None
for scr in soup.find_all("script"):
scrExtract = scr.extract()
alert = re.findall('err="(.*\w)', scrExtract.text)
if len(alert) > 0:
errors = alert[0]

print(errors)

关于python - 显示警报时从窗口警报中刮取警报文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57011029/

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