• httpClient get方式抓取数据


    /*
         * 爬取网页信息
         */
        private static String pickData(String url) {
            CloseableHttpClient httpclient = HttpClients.createDefault();
            try {
                HttpGet httpget = new HttpGet(url);
                CloseableHttpResponse response = httpclient.execute(httpget);
                try {
                    // 获取响应实体
                    HttpEntity entity = response.getEntity();
                    // 打印响应状态
                    if (entity != null) {
                        InputStream in = entity.getContent();
                        // byte[] b=new byte[in.available()];
                        // in.read(b);
                        BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
                        String temp = "";
                        String s = "";
                        while ((temp = br.readLine()) != null) {
                            s = s + temp;
                        }
                        return s;
                    } else {
                        String content = "热门综艺节目抓取失败,请检查";
                        ErrorLog el = new ErrorLog();
                        Remind remind = new Remind();
                        remind.remind(el.getVerietyLog(), content);
                        return null;
                    }
                } finally {
                    response.close();
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭连接,释放资源
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }

        /*
         * 使用jsoup解析网页信息
         */
        private static Variety analyzeHTMLByString(String html) {
            Variety v = new Variety();
            String[] arr = new String[3];
            Document document = Jsoup.parse(html);
            // document.select("meta").attr("charset", "utf-8");
            // System.out.println(document);
            Elements array = document.getElementsByClass("keyword");
            System.out.println(array.size());
            String content = "热门综艺节目抓取失败,请检查";
            ErrorLog el = new ErrorLog();
            if (array.size() == 0) {
                Remind remind = new Remind();
                remind.remind(el.getVerietyLog(), content);
                return null;
            }else{
                if (array.size() >= 3) {
                    for (int i = 0; i < 3; i++) {
                        String name = array.get(i).child(0).text();
                        arr[i] = name;
                    }
                } else {
                    for (int i = 0; i < array.size(); i++) {
                        String name = array.get(i).child(0).text();
                        arr[i] = name;
                    }
                }
                v.setHot1(arr[0]);
                v.setHot2(arr[1]);
                v.setHot3(arr[2]);
                return v;
            }
            
        }

  • 相关阅读:
    2019-2020nowcoder牛客寒假基础2
    2019-2020nowcoder牛客寒假基础1
    CF1291
    Daily Codeforces
    2019ICPC 上海现场赛
    Codeforces Round #686 (Div. 3)
    Codeforces Round #685 (Div. 2)
    Educational Codeforces Round 98 (Rated for Div. 2)
    Codeforces Round #654 (Div. 2)
    Codeforces Round #683 (Div. 2, by Meet IT)
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/7058577.html
Copyright © 2020-2023  润新知