Java中url获取最终地址
Java中的HttpClient或者HttpURLConnection的方法都是针对后台网址的转发跳转,如果有一个中间页面是js跳转window.location.href就抓瞎了,因为后台是没法调用到js方法的
这个时候可以使用爬虫方法抓取到整个页面,然后获取到url
缺点明显,慢而且大量使用会造成内存溢出,但总归有用,先记录下来
WebClient web = new WebClient(BrowserVersion.FIREFOX_60);
web.getOptions().setJavaScriptEnabled(true);// 启用JS解释器,默认为true
web.setJavaScriptTimeout(1000);// 设置JS执行的超时时间
web.getOptions().setCssEnabled(false);// 禁用css支持
web.getOptions().setThrowExceptionOnScriptError(false);// js运行错误时,是否抛出异常
web.getOptions().setTimeout(1000); // 设置连接超时时间
HtmlPage html = web.getPage(url);//填入url地址
System.out.println("html.getBaseURL():"+html.getBaseURL());
web.close();//用完记得关闭
本文介绍在Java中如何使用WebClient从源网址通过爬虫方式获取最终目标网址,适用于处理由JS触发的window.location.href跳转情况,提供了一种尽管资源消耗较大但有效的解决方案。
2113

被折叠的 条评论
为什么被折叠?



