我想使用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),它位于标签“a”内,ID为“link_FI”。但是运行上面的代码,href标记为空。结果如下:
HtmlAnchor[<a id="link_FI" href="#" title="Foglio Illustrativo">]
但是href不是空的。为什么?
答案 0 :(得分: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,它说,它支持你应该寻找的Javscript需求,但我不能为你提供一个例子。遗憾。