2017-01-02 6 views
0

ウェブページからリンクを取得するためにhtmlUnitを使用します。私は "foglio illustrativo PDF" のリンクを取得したいHtmlUnit - href属性を取得中にエラーが発生しました

String url = "https://farmaci.agenziafarmaco.gov.it/bancadatifarmaci/farmaco?farmaco=012745"; 
     try { 
      java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF); 

      final WebClient webClient = new WebClient(); 
      WebClientOptions wco = webClient.getOptions(); 
      wco.setUseInsecureSSL(true); 
      final HtmlPage page = webClient.getPage(url); 

      final HtmlElement list = page.getHtmlElementById("link_FI"); 

     System.out.println(list.toString()); 
     }catch(Exception e){ 
      e.printStackTrace(); 

     } 

は、ここに私のコードです。 htmlコード内を移動すると(関数クロムのコードを調べると)、ID「link_FI」のタグ「a」内にあります。しかし、上記のコードを実行すると、hrefタグは空です。結果は、

HtmlAnchor[<a id="link_FI" href="#" title="Foglio Illustrativo">] 

ですが、hrefは空ではありません。なぜ??

答えて

0

ウェブサイトは、後でサーバーからコンテンツを読み込み、照会しているリンクを変更します。あなたのWebクライアントがすべてのjavascriptを実行していない場合、hrefは非常によく空になることがあります。

ブラウザでjavascriptを無効にして、ページを読み込みます。あなたが見ているアンカータグは次のようになります。この問題を解決する

<div id="link_FI_div"> 
    <a id="link_FI" href="#" title="Foglio Illustrativo"> 
     <div style="display:inline-block;"> 
     <div style="display:inline-block;position:relative;top:8px;"> 
    </a> 
</div> 

は容易ではない、私はあなたがJavascriptをサポートして本格的なブラウザを使用することをお勧めして、それを使用してページをつかむでしょう。 javafx.scene.web.WebViewは、あなたが望むことをしているはずです。適切なJavaScriptサポートが含まれていて、Webkitをラップする必要があります。

同じことがHtmlUnitにも当てはまりますが、それはあなたが探しているはずのJavスクリプトのニーズをサポートしていますが、私はあなたに例を挙げることはできません。ごめんなさい。

+0

ありがとう、私は理由を理解しています。どうすれば解決できますか? – Fidelis

関連する問題