2016-01-13 107 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