大众信息网

用htmlunit怎么去获取一个有JS加载的网页信息

关注:167  答案:5  手机版
解决时间 2021-03-06 17:16
用htmlunit怎么去获取一个有JS加载的网页信息
最佳答案
有两种方式供选择我推荐第一种,一:去阅读相关的网页里的js和网页请求之后的header,通过hander知道这个获取这个信息的接口。通过httpclient来获知你想要的信息。二:通过htmlunit框架提供的方法:
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;

jsExecutor.executeScript("LoginSubmit();", "");这里的LoginSubmit就是页面里的js方法名称(页面里要有这个js方法,当然你也可以自己写一些js)。然后通过dom操作来获取你想要的信息。
全部回答
可以试试jsoup吧。也是一个类似的工具。 再看看别人怎么说的。
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
WebClient client = new WebClient(BrowserVersion.CHROME); client.getOptions().setThrowExceptionOnFailingStatusCode(false); client.getOptions().setThrowExceptionOnScriptError(false); client.getOptions().setJavaScriptEnabled(true); client.getOptions().setActiveXNative(false); client.getOptions().setCssEnabled(false); client.waitForBackgroundJavaScript(60*1000); client.setAjaxController(new NicelyResynchronizingAjaxController()); client.setJavaScriptTimeout(35000); HtmlPage page = client.getPage(url); //这里是你要访问的地址 client.waitForBackgroundJavaScript(1000*3); client.setJavaScriptTimeout(0); Document document = Jsoup.parse(page.asXml()); client.closeAllWindows(); 如果不懂可以搜一下各种设置的意思
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!