大众信息网

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

答案:5  mip版
解决时间 2021-03-06 17:16
  • 提问者网友:鉨瞞着所囿亾,爱着誰
  • 2021-03-05 16:17
用htmlunit怎么去获取一个有JS加载的网页信息
最佳答案
  • 二级知识专家网友:時光叫我忘了他
  • 2021-03-05 17:43
有两种方式供选择我推荐第一种,一:去阅读相关的网页里的js和网页请求之后的header,通过hander知道这个获取这个信息的接口。通过httpclient来获知你想要的信息。二:通过htmlunit框架提供的方法:
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;

jsExecutor.executeScript("LoginSubmit();", "");这里的LoginSubmit就是页面里的js方法名称(页面里要有这个js方法,当然你也可以自己写一些js)。然后通过dom操作来获取你想要的信息。
全部回答
  • 1楼网友:包子女孩
  • 2021-03-05 20:17
可以试试jsoup吧。也是一个类似的工具。 再看看别人怎么说的。
  • 2楼网友:無字情書
  • 2021-03-05 19:35
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
  • 3楼网友:指间的落寞
  • 2021-03-05 19:03
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(); 如果不懂可以搜一下各种设置的意思
  • 4楼网友:萌逗
  • 2021-03-05 18:04
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯