HtmlUnit网络爬虫 / xpath解析网站之获取iframe内联框架的内容,以及管理cookie

一、获取iframe内联框架的内容

 

java代码:

 

 

页面内容:

二、管理cookie

 

//2.设置连接的相关选项
        webClient.getOptions().setThrowExceptionOnScriptError(false);//当JS执行出错的时候是否抛出异常
        webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);//当HTTP的状态非200时是否抛出异常
        webClient.getOptions().setActiveXNative(false);
        webClient.getOptions().setCssEnabled(false);//是否启用CSS
        webClient.getOptions().setJavaScriptEnabled(true); //很重要,启用JS
        webClient.getCookieManager().setCookiesEnabled(true);//开启cookie管理

        // 3 启动客户端重定向  
       // webClient.getOptions().setRedirectEnabled(true);

        webClient.setAjaxController(new NicelyResynchronizingAjaxController());//很重要,设置支持AJAX
        webClient.getOptions().setTimeout(1000*60);//设置“浏览器”的请求超时时间
        webClient.setJavaScriptTimeout(1000*60);//设置JS执行的超时时间
        webClient.waitForBackgroundJavaScript(1000*60);//异步JS执行需要耗时,所以这里线程要阻塞60秒,等待异步JS执行结束

 

//3.抓取页面
        HtmlPage page = null;
        try {
            page = webClient.getPage(url);
            
             CookieManager CM = webClient.getCookieManager(); //WC = Your WebClient's name
             Set<Cookie> cookies = CM.getCookies();//返回的Cookie在这里,下次请求的时候可能可以用上啦。
             //设置cookie。如果你有cookie,可以在这里设置
             // Set<Cookie> cookies=null;
             for (Cookie cookie : cookies) {
                /* webClient.getCookieManager().addCookie(cookie);
                System.out.println(">>>>>>>>>>>"+cookie.getName());*/
                //Cookie cookie2 = webClient.getCookieManager().getCookie(cookie.getName());
                System.out.println(">>>>>>>>>>>>>>1231231>>>"+cookie.getName());
                System.out.println(">>>>>>>>>values>>>"+cookie.getValue());
             }
            
            
        } catch (FailingHttpStatusCodeException | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

 

展开阅读全文

没有更多推荐了,返回首页