簡體   English   中英

HtmlUnit-獲取href屬性時出錯

[英]HtmlUnit - error getting href attribute

我想使用htmlUnit從網頁獲取鏈接。

這是我的代碼:

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();

        }

我想獲取“ foglio illustrativo pdf”的鏈接。 在html代碼中導航(帶有chrome功能檢查代碼),該代碼位於ID為“ link_FI”的標簽“ a”內。 但是運行上面的代碼,href標記為空。 結果是這樣的:

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

但href不是空的。 為什么??

該網站稍后會從服務器加載一些內容,並修改您正在查詢的鏈接。 如果您的網絡客戶端未執行所有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,它說,它支持您應該尋找的Javscript需求,但我無法為您提供示例。 抱歉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM