zoukankan      html  css  js  c++  java
  • htmlunit与Jsoup

    //这个函数的目的是在获取页面的同时,也获取链接对应的cookie
    public static HtmlPage getCookieAndHtml(String url)throws IOException{
    URL link=new URL(url);
    WebClient wc=new WebClient();
    WebRequest request=new WebRequest(link);
    wc.getCookieManager().setCookiesEnabled(true);//开启cookie管理
    wc.getOptions().setJavaScriptEnabled(true);//开启js解析。对于变态网页,这个是必须的
    wc.getOptions().setCssEnabled(true);//开启css解析。对于变态网页,这个是必须的。
    HtmlPage page = wc.getPage(request);
    CookieManager CM = wc.getCookieManager(); //WC = Your WebClient's name
    ThreeExecute.cookie = CM.getCookies();//返回的Cookie在这里,下次请求的时候可能可以用上啦。这里的cookie是ThreeExecute这个类中的全局静态变量,类型为Set<Cookie>
    wc.close();
    return page;
    }

    //调用
    public static HtmlPage getHtml1(String url, Set<Cookie> cookies)throws IOException{
    URL link =new URL(url);
    final WebClient webClient = new WebClient();
    WebRequest request = new WebRequest(link);
    webClient.getOptions().setCssEnabled(false);
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setThrowExceptionOnScriptError(true);
    Iterator<Cookie> it = cookies.iterator();
    while (it.hasNext()) {
    webClient.getCookieManager().addCookie(it.next());
    }
    final HtmlPage page = webClient.getPage(request);
    webClient.close();
    return page;
    }

    Jsoup在爬取数据需要用到Cookie时的操作就很简单
    Map<String, String> cookies = null;
    Response res = Jsoup.connect("http://www.chengmi.com/shanghai").timeout(30000).execute();
    cookies = res.cookies();
    Document doc = null;
    doc = Jsoup.connect(url).cookies(cookies).timeout(30000).get();
  • 相关阅读:
    C 语言指针小结
    NOIP2012 复赛考生须知!
    2012 NOIP 初赛复习指导
    16元的纸币
    记一次社会化的钓鱼攻击
    福州大学ACM代表队获36届ACMICPC全球总决赛第18名
    福州教育相关教育资源介绍
    世界末日:科普很重要啊~~~
    201212信息学奥林匹克竞赛,新生招募
    模拟人脑:这个事儿,闹大了
  • 原文地址:https://www.cnblogs.com/shirandedan/p/6511455.html
Copyright © 2011-2022 走看看