返回信息流我在抓取网页的过程中发现自己想要的一部分内容不在网页的静态源码里,在“审查元素”里才能够看到。所以说它是在动态源码里。在网上查了一下说用httpunit会比较快,不用打开浏览器神马的。就打算用这个来实现,在网上也找了很多代码,比较类似,但是无法实现,在webclient的位置就不报错了,无法运行下去。求大神帮解答!
这是一条镜像帖。来源:北邮人论坛 / java / #40467同步于 2015/5/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
怎么下载网页的动态源码?用httpunit的话
zcldoris
2015/5/5镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
try{
//WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);
//设置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("线程结束沉睡");
System.out.println(rootPage);
}catch(Exception e){
}
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);
这个位置就开始报错了。我的电脑上的ie浏览器就是11的。是因为ie浏览器没有这种功能吗?网上看到有用火狐的,火狐实现起来会好很多吗?
等解答!谢谢!
试试火狐呗,htmlpage转成字符串应该是有方法吧,记得是asxml,astext之类的吧,转成xml或者text格式的方法,lz查查吧,具体方法名忘记了。。。
我用那个asText和asXml总报错。我再试试,谢谢!
【 在 NotGoodGuy 的大作中提到: 】
: 试试火狐呗,htmlpage转成字符串应该是有方法吧,记得是asxml,astext之类的吧,转成xml或者text格式的方法,lz查查吧,具体方法名忘记了。。。
我一般用Selenium,HtmlUnit没用过
【 在 zcldoris (Doris) 的大作中提到: 】
: try{
: //WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
: WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);
: ...................