Java HtmlUnit-获取href属性时出错
我想使用htmlUnit从网页获取链接 这是我的密码:Java HtmlUnit-获取href属性时出错,java,htmlunit,Java,Htmlunit,我想使用htmlUnit从网页获取链接 这是我的密码: String url = "https://farmaci.agenziafarmaco.gov.it/bancadatifarmaci/farmaco?farmaco=012745"; try { java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
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插图pdf”的链接。在html代码中导航(使用chrome的函数inspect code),它位于id为“link_FI”的标记“a”内。但是运行上面的代码时,href标记为空。结果是:
HtmlAnchor[<a id="link_FI" href="#" title="Foglio Illustrativo">]
HtmlAnchor[]
但是href不是空的。为什么???网站稍后将从服务器加载一些内容,并修改您正在查询的链接。如果您的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也是如此,它说,它支持您应该寻找的Javscript需求,但我不能为您提供一个示例。对不起。好的,谢谢,我明白原因了。我怎样才能解决它?