htmlunit java-如何从javascript解析内容结果?还有一个htmlunit错误
这是我将要刮掉的一页: 我想通过“ulasan terbaru”下的注释文本刮取,我认为这是一个javascript的结果(尽管我可能错了,我不完全确定如何通过inspect元素检查它),除此之外,我也不确定HTMLUnit中的几件事 我读过这篇文章,是为了获取使用HTMLUnit而不是Jsoup所需的javascript内容。我已经读过了,试图按类刮去div的注释,但是我没有得到任何输出htmlunit java-如何从javascript解析内容结果?还有一个htmlunit错误,java,htmlunit,Java,Htmlunit,这是我将要刮掉的一页: 我想通过“ulasan terbaru”下的注释文本刮取,我认为这是一个javascript的结果(尽管我可能错了,我不完全确定如何通过inspect元素检查它),除此之外,我也不确定HTMLUnit中的几件事 我读过这篇文章,是为了获取使用HTMLUnit而不是Jsoup所需的javascript内容。我已经读过了,试图按类刮去div的注释,但是我没有得到任何输出 public static void comment(String url) throws IOE
public static void comment(String url) throws IOException{
WebClient client = new WebClient();
client.setCssEnabled(true);
client.setJavaScriptEnabled(true);
try {
HtmlPage page = client.getPage(url);
List<?> date = page.getByXPath("//div/@class='list-box-comment'");
System.out.println(date.size());
for(int i =0 ; i<date.size();i++){
System.out.println(date.get(i).asText());
}
}
catch(Exception e){
e.printStackTrace();
}
}
公共静态无效注释(字符串url)引发IOException{
WebClient客户端=新的WebClient();
client.setCssEnabled(true);
setJavaScriptEnabled(true);
试一试{
HtmlPage=client.getPage(url);
列表日期=page.getByXPath(“//div/@class='List-box-comment');
System.out.println(date.size());
对于(int i=0;i关于您的代码:
public static void main(String[] args) throws IOException {
final String url = "https://www.tokopedia.com/berkahcell2/promo-termurah-vr-virtual-reality-box-v-2-0-remote-bluetooth-gamepad/review?src=topads";
try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)) {
webClient.getOptions().setThrowExceptionOnScriptError(false);
HtmlPage page = webClient.getPage(url);
webClient.waitForBackgroundJavaScript(40_000);
System.out.println(page.asXml());
List<DomNode> date = page.getByXPath("//div[@class='list-box-comment']");
System.out.println(date.size());
for(int i = 0 ; i < date.size();i++){
System.out.println(date.get(i).asText());
}
}
}
publicstaticvoidmain(字符串[]args)引发IOException{
最终字符串url=”https://www.tokopedia.com/berkahcell2/promo-termurah-vr-virtual-reality-box-v-2-0-remote-bluetooth-gamepad/review?src=topads";
try(final-WebClient-WebClient=new-WebClient(BrowserVersion.FIREFOX\u 60)){
webClient.getOptions().SetThroweExceptionOnScriptError(false);
HtmlPage=webClient.getPage(url);
webClient.waitForBackgroundJavaScript(40_000);
System.out.println(page.asXml());
列表日期=page.getByXPath(“//div[@class='List-box-comment']”);
System.out.println(date.size());
对于(int i=0;i
现在,页面本身的问题是:
已经做了一些测试,看起来页面在真实浏览器中也会产生错误(检查浏览器控制台)。但是使用HtmlUnit会遇到更多问题(可能是因为缺少对某些javascript功能的支持)。通常这类页面使用了很多很多行js代码-我要找出哪里出了问题真的很费时。如果您想解决这个问题,请尝试找到问题的真正原因(有关提示,请参阅),并提交错误报告。关于您的代码:
public static void main(String[] args) throws IOException {
final String url = "https://www.tokopedia.com/berkahcell2/promo-termurah-vr-virtual-reality-box-v-2-0-remote-bluetooth-gamepad/review?src=topads";
try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)) {
webClient.getOptions().setThrowExceptionOnScriptError(false);
HtmlPage page = webClient.getPage(url);
webClient.waitForBackgroundJavaScript(40_000);
System.out.println(page.asXml());
List<DomNode> date = page.getByXPath("//div[@class='list-box-comment']");
System.out.println(date.size());
for(int i = 0 ; i < date.size();i++){
System.out.println(date.get(i).asText());
}
}
}
publicstaticvoidmain(字符串[]args)引发IOException{
最终字符串url=”https://www.tokopedia.com/berkahcell2/promo-termurah-vr-virtual-reality-box-v-2-0-remote-bluetooth-gamepad/review?src=topads";
try(final-WebClient-WebClient=new-WebClient(BrowserVersion.FIREFOX\u 60)){
webClient.getOptions().SetThroweExceptionOnScriptError(false);
HtmlPage=webClient.getPage(url);
webClient.waitForBackgroundJavaScript(40_000);
System.out.println(page.asXml());
列表日期=page.getByXPath(“//div[@class='List-box-comment']”);
System.out.println(date.size());
对于(int i=0;i
现在,页面本身的问题是:
已经做了一些测试,看起来页面在真实浏览器中也会产生错误(检查浏览器控制台)。但是使用HtmlUnit会遇到更多问题(可能是因为缺少对某些javascript功能的支持)。通常这类页面使用了很多很多行js代码-对我来说,找出问题所在非常耗时。如果你想解决这个问题,请尝试找到问题的真正原因(请参阅以获取一些提示)并提交错误报告