2016-01-13 80 views
3

我想从下面的html中检索“data-default-src”的值。看起来像身体在阴影根节点或隐藏在源代码中。这只能通过chrome的检查元素功能才能看到,而不是在完成ctrl + u时显示。使用Jsoup解析html元素

<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")); 
+0

“这只能通过chrome的检查元素功能才能看到,而不是在完成ctrl + u时显示。”这意味着该属性是在浏览器中动态生成的,很可能使用JavaScript。 JSoup是一个HTML库,而不是一个完整的浏览器模拟器。你需要找出另一种方法来获得价值。 –

+0

@still_learning谢谢。你知道的任何其他提取API可以帮助解决? – Scitech

+1

这取决于您的要求以及如何生成属性。看看[这个页面](https://gist.github.com/evandrix/3694955)。我前段时间尝试了一些,HTMLUnit似乎是一个强有力的选择。 –

回答

2

你可以尝试HTMLUnit其是提供一个无头的浏览器库。有了这个,你可以加载页面,就好像你真正访问它一样,导致所有的javascript被评估,并且任何动态内容都被插入到DOM中。在那里你可以选择使用HTMLUnit的DOM API或将其投入JSoup。

+0

谢谢。我会试试看。 – Scitech