在htmlunit
中可以通过URL轻松获取一个HtmlPage,但是却没有提供根据Html字符串创建一个HtmlPage。
通过Url获取一个page
HtmlPage page = webClient.getPage("http://www.baidu.com/");
|
但是源码包里面有通过URL
下载网页源码,并通过StringWebResponse
构建一个HtmlPage
对象,
所以利用这一个机制我们便可以利用StringWebResponse
手动构建一个HtmlPage对象。
实现方式如下
public static HtmlPage getPage(WebClient client, String html, String url, WebWindow window) { try { URL u = new URL(StringUtils.isBlank(url) ? "http://www.idea.com" : url); StringWebResponse response = new StringWebResponse(html, u); HtmlPage page = HTMLParser.parseHtml(response, window != null ? window : client.getCurrentWindow()); return page; } catch (Exception e) { throw new RuntimeException("字符串转换为htmlPage出错", e); } }
public static HtmlPage getPage(String html) { return getPage(new WebClient(), html, null,null); }
|
接下来调用getPage
方法 并传入Html字符串就可以返回一个HtmlPage对象了。
本文参考 https://stackoverflow.com/questions/6136435/how-to-create-htmlunit-htmlpage-object-from-string