使用java jsoup抓取页面中的数据

介绍

使用jsoup来进行解析。 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
jsoup提供的中文文档

业务需求

抓取页面中的答案。如图:
这里写图片描述

demo展示

 //方法入口
 public static void main(String[] args) {
       for (int i = 1974; i <= 2700; i++) {
            //获取url
            String url = "https://game-solver.com/word-connect-answers/word-connect-level-" + i + "-answers/";
            //爬取网页信息
            String html = pickData(url);
            //获取html中的内容
            String content = analyzeHTMLByString(html,i);
            //输出获取到的内容
            System.out.println(content);
        }

    }

    /*
     * 爬取网页信息
     */
    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) {
                    return EntityUtils.toString(entity);
                }
            } 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 String analyzeHTMLByString(String html int guan) {
        Document document = Jsoup.parse(html);
        //获取html class 为info-box succes 的节点
        org.jsoup.select.Elements eLunarDate = document.getElementsByClass("info-box success");
        //截取掉标签,只获取内容
        String str = eLunarDate.toString().substring(32, eLunarDate.toString().length() - 7);
       return str ;
    }

猜你喜欢

转载自blog.csdn.net/qq_18115729/article/details/79239970
今日推荐