如何将HTMLUnit页面呈现给浏览器?

时间:2012-07-26 08:37:09

标签: browser render htmlunit

我正在使用HTMLUnit进行网站抓取。我在浏览器中显示Html页面时遇到问题。这意味着当我在网站上抓取网站时添加新页面。所以我需要通过我的HTMLUnit应用程序将该页面显示给浏览器。那么如何将HTMLUnit页面呈现给浏览器呢?

1 个答案:

答案 0 :(得分:2)

正如我了解您的需求,您使用HtmlUnit加载页面,并希望在对渲染代码进行一些操作后在浏览器中显示它。

一般来说,渲染页面需要时间,我看到了一些我不喜欢的睡眠解决方案。

有两种方法:

  1. page.asText() - 显示渲染文字
  2. page.asXml() - 在呈现前显示文字
  3. 但这两个功能都不是你想要的。

    一个奇怪但仍然有效的解决方案是保存渲染页面,而不是使用浏览器加载它:

    // Get page as Html
    HtmlPage page = wc.getPage("http://stackoverflow.com/");
    
    // Generate random file in temp directory
    File file = File.createTempFile("HtmlUnit", ".html");
    file.delete(); // Delete is needed, because page.save can't overwrite it
    
    //save page image
    page.save(file);
    
    //Open the page with a browser
    Runtime.getRuntime().exec("C:/Program Files/Internet Explorer/iexplore.exe " + file);