Java 为什么HtmlUnit代码不';与Chrome代码不匹配?
我正试图通过网络路由器页面抓取来搜索连接的设备和相关信息。 我写了这段代码:Java 为什么HtmlUnit代码不';与Chrome代码不匹配?,java,web-scraping,router,htmlunit,Java,Web Scraping,Router,Htmlunit,我正试图通过网络路由器页面抓取来搜索连接的设备和相关信息。 我写了这段代码: String searchUrl="http://192.168.1.1"; HtmlPage page=client.getPage(searchUrl); System.out.println(page.asXml()); 问题是HtmlUnit返回的代码与Chrome中的代码不同。在HtmlUnit中,我没有列出连接设备的代码部分。试试这样的方法 try (final WebClient webClient =
String searchUrl="http://192.168.1.1";
HtmlPage page=client.getPage(searchUrl);
System.out.println(page.asXml());
问题是HtmlUnit返回的代码与Chrome中的代码不同。在HtmlUnit中,我没有列出连接设备的代码部分。试试这样的方法
try (final WebClient webClient = new WebClient()) {
// do not stop at js errors
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getPage(searchUrl);
// now wait for the js starting async (you can play with the timing)
webClient.waitForBackgroundJavaScript(10000);
// maybe the page was replaced from the async js
HtmlPage page = (HtmlPage) webClient.getCurrentWindow().getEnclosedPage();
System.out.println(page.asXml());
}
通常这会有帮助。
如果您仍然面临问题,则必须在github()上打开一个问题
但请记住,只有在这里运行/调试您的代码,我才能真正提供帮助——这意味着您的web应用程序必须公开 是否涉及任何
js
?您可以在chrome中检查网络响应,并将其与您的响应进行比较。是的。动态内容有问题吗?这些动态内容是通过JavaScript处理生成的。因此,如果您还希望这些字段存在,HtmlPage
库需要具有JS
功能。它已经启用