无法使用 HtmlUnit 和 Jsoup 组合下载完整文档(使用 Java)
Cannot download full Document using HtmlUnit and Jsoup combination (using Java)
假设我要解析地址,即“香港山顶中峡道24号”
我做了什么:
我首先只尝试使用 jsoup 加载,但后来我注意到页面加载需要一些时间。所以,然后我也插入了HTMLUnit等待页面先加载
我写的代码:
public static void parseByHtmlUnit() throws Exception{
String url = "http://www.hongkonghomes.com/en/property/rent/the_peak/middle_gap_road/10305?page_no=1&rec_per_page=12&order=rental+desc&offset=0";
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38);
webClient.waitForBackgroundJavaScriptStartingBefore(30000);
HtmlPage page = webClient.getPage(url);
synchronized(page) {
page.wait(30000);
}
try {
Document doc = Jsoup.parse(page.asXml());
String address = ElementsUtil.getTextOrEmpty(doc.select(".addr"));
System.out.println("address"+address);
} catch (Exception e) {
e.printStackTrace();
}
}
预期输出:
在控制台中,我应该得到这个输出:
地址香港山顶中峡道24号
实际输出:
地址
这个怎么样?
final Document document = Jsoup.parse(
new URL("http://www.hongkonghomes.com/en/property/rent/the_peak/middle_gap_road/10305?page_no=1&rec_per_page=12&order=rental+desc&offset=0"),
30000
);
System.out.println(document.select(".addr").text());
假设我要解析地址,即“香港山顶中峡道24号”
我做了什么: 我首先只尝试使用 jsoup 加载,但后来我注意到页面加载需要一些时间。所以,然后我也插入了HTMLUnit等待页面先加载
我写的代码:
public static void parseByHtmlUnit() throws Exception{
String url = "http://www.hongkonghomes.com/en/property/rent/the_peak/middle_gap_road/10305?page_no=1&rec_per_page=12&order=rental+desc&offset=0";
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_38);
webClient.waitForBackgroundJavaScriptStartingBefore(30000);
HtmlPage page = webClient.getPage(url);
synchronized(page) {
page.wait(30000);
}
try {
Document doc = Jsoup.parse(page.asXml());
String address = ElementsUtil.getTextOrEmpty(doc.select(".addr"));
System.out.println("address"+address);
} catch (Exception e) {
e.printStackTrace();
}
}
预期输出: 在控制台中,我应该得到这个输出: 地址香港山顶中峡道24号
实际输出: 地址
这个怎么样?
final Document document = Jsoup.parse(
new URL("http://www.hongkonghomes.com/en/property/rent/the_peak/middle_gap_road/10305?page_no=1&rec_per_page=12&order=rental+desc&offset=0"),
30000
);
System.out.println(document.select(".addr").text());