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) {
}
我用Jsoup写爬虫,一般遇到html返回没有的内容。但是浏览器显示有的内容。都是分析页面的http请求日志。分析页面JS代码来解决。1、有些页面元素被隐藏起来了->换selector解决
2、有些数据保存在js/json对象中->截取对应的串,分析解决
3、通过api接口调用->伪造请求获得数据
还有一个终极方法
4、使用phantomjs或者casperjs这种headless浏览器