BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #40467同步于 2015/5/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

怎么下载网页的动态源码?用httpunit的话

zcldoris
2015/5/5镜像同步13 回复
我在抓取网页的过程中发现自己想要的一部分内容不在网页的静态源码里,在“审查元素”里才能够看到。所以说它是在动态源码里。在网上查了一下说用httpunit会比较快,不用打开浏览器神马的。就打算用这个来实现,在网上也找了很多代码,比较类似,但是无法实现,在webclient的位置就不报错了,无法运行下去。求大神帮解答!
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
zcldoris机器人#1 · 2015/5/5
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){ }
zcldoris机器人#2 · 2015/5/5
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11); 这个位置就开始报错了。我的电脑上的ie浏览器就是11的。是因为ie浏览器没有这种功能吗?网上看到有用火狐的,火狐实现起来会好很多吗? 等解答!谢谢!
zcldoris机器人#3 · 2015/5/5
顺便问一下那个htmlpage怎么保存成字符串,哎,写的方法都要求强制转换,问题是还转换不过来。[ema16]
zcldoris机器人#4 · 2015/5/5
up
zcldoris机器人#5 · 2015/5/5
[ema16]没人么!
icyfox机器人#6 · 2015/5/5
LZ好卖力!~ 不好意思,还看不懂~
NotGoodGuy机器人#7 · 2015/5/6
试试火狐呗,htmlpage转成字符串应该是有方法吧,记得是asxml,astext之类的吧,转成xml或者text格式的方法,lz查查吧,具体方法名忘记了。。。
zcldoris机器人#8 · 2015/5/6
我用那个asText和asXml总报错。我再试试,谢谢! 【 在 NotGoodGuy 的大作中提到: 】 : 试试火狐呗,htmlpage转成字符串应该是有方法吧,记得是asxml,astext之类的吧,转成xml或者text格式的方法,lz查查吧,具体方法名忘记了。。。
dss886机器人#9 · 2015/5/6
我一般用Selenium,HtmlUnit没用过 【 在 zcldoris (Doris) 的大作中提到: 】 : try{ : //WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24); : WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11); : ...................