我正在使用 HTMLUnit 进行网站抓取。我在浏览器中显示 Html 页面时遇到问题。这意味着当我在网站上抓取网站添加新页面时。所以我需要通过我的 HTMLUnit 应用程序将该页面显示给浏览器。那么如何将 HTMLUnit 页面呈现给浏览器呢?
问问题
2406 次
1 回答
2
据我了解您的需求,您使用 HtmlUnit 加载页面,并希望在对呈现的代码进行一些操作后在浏览器中显示它。
一般来说,渲染页面需要时间,并且我看到了一些我不喜欢的睡眠解决方案。
有两种方法:
- page.asText() - 显示渲染文本
- page.asXml() - 在渲染前显示文本
但这两个功能都不是您想要的。
一个奇怪但仍然有效的解决方案是保存呈现的页面,然后用浏览器加载它:
// 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);
于 2013-06-16T18:30:56.077 回答