try {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10)
//设置webClient的相关参数
webClient.getOptions().setJavaScriptEnabled(true)
webClient.getOptions().setCssEnabled(false)
webClient.setAjaxController(new NicelyResynchronizingAjaxController())
//webClient.getOptions().setTimeout(50000)
webClient.getOptions().setThrowExceptionOnScriptError(false)
//模拟浏览器打开一个目标网址
HtmlPage rootPage = webClient.getPage(url)
System.out.println("为了获取js执行的数据 线程开始沉睡等待")
Thread.sleep(3000)//主要是这个线程的等待 因为js加载也是需要时间的
System.out.println("线程结束沉睡")
String html = rootPage.asText()
System.out.println(html)
} catch (Exception e) {
}
抓取动态页面有两种常用的方法,一是通过JavaScript逆向工程获取动态数据接口(真实的访问路径),另一种是利用selenium库模拟真实浏览器,获取JavaScript渲染后的内容。但selenium库用起来比较繁琐,抓取速度相对较慢,所以第一种方法日常使用较多。1、JS获取表格的简便方法:获取tbody:tBodies 获取thead:tHead 获取tfoot:tFoot 获取行tr:rows 获取列td:cells使用实例: oTable.tBodies[0] oTable.tHead[0] oTable.tFoot[0] oTable.rows[1] oTable.cells[1]
2、遍历
var oTable=document.getElementById("表格id")
oTable.tBodies[0]可以看成是rows和cells组成的二维数组,用两个for循环嵌套遍历一下就可以了
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)