使用Jsoup解析HTML元素

3
我希望能从下面的HTML中检索"data-default-src"的值。看起来正文在shadow-root节点中或隐藏在源代码中。这只能通过Chrome的检查元素功能来看到,而不能通过ctrl+u来查看。
<body onload="handleOnLoad();" style="margin:0;padding:0;width:100%;height:100%;
position:relative;overflow:hidden" id="myPlayer" 
data-default-src="https://cdn.video.playwire.com/12272/videos/4483914/video-sd.mp4?hosting_id=12272">

这是我迄今为止尝试过的内容:
Elements media = doc.select("body");

            for (Element links: media) 
            {
            System.out.println((links.attr("abs:data-default-src")));
            }

还有这个:

Element body = doc.body();
System.out.println(body.attr("data-default-src"));

这只能通过Chrome的检查元素功能看到,而不能通过ctrl+u完成。这意味着该属性是在浏览器中动态生成的,很可能使用JavaScript实现。JSoup是一个HTML库,而不是完整的浏览器仿真器。您需要找到另一种方法来获取该值。 - Tobias
@still_learning 谢谢。你知道还有哪些提取API可以帮助解决吗? - Scitech
1
这取决于您的要求以及属性是如何生成的。请查看此页面。我之前尝试过一些,HTMLUnit似乎是一个强大的选择。 - Tobias
是的,我会浏览API。谢谢大家。 - Scitech
1个回答

2
你可以尝试使用提供无头浏览器的库——HTMLUnit。通过这个库,你可以像实际访问一样加载页面,导致所有JavaScript代码被执行并且任何动态内容都会被插入到DOM中。然后你可以选择使用HTMLUnit的DOM API或将其投入JSoup中。

谢谢。我会试一下。 - Scitech

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接