HTMLUnit HtmlPage.getBody()返回null,即使响应包含标记

时间:2014-01-16 12:38:50

标签: htmlunit

我在Java中使用HTMLUnit从网站中提取信息。 进入一个奇怪的现象,页面没有完全解析到DOM树。 以下之后:

HtmlPage lineHours = (HtmlPage) _webClient.getTopLevelWindows().get(1).getEnclosedPage();

观察表达式lineHours.asXml()会产生以下结果(...标记省略的敏感数据)

<?xml version="1.0" encoding="UTF-8"?>
<html>
  <head>
    <script ...>
    </script>
  </head>
</html>

打印lineHours.getWebResponse()。getContentAsString()时会产生以下结果:

<html>
  <head>
    <script ...>
    </script>
  </head>
</html>
<body>
  <div> ...

简而言之,body标签不会被解析为DOM树。因此所有XPath查询和辅助方法(如HtmlPage.getBody())都会失败。在常规浏览器中,页面呈现良好。 有任何想法吗? 谢谢 Tomer的

1 个答案:

答案 0 :(得分:0)

最终通过使用Xerces解析器解析DOM树并从中检索结果来解决这个问题。