18 selector选择器的组合使用获取元素

时间:2023-1-18    作者:老大夫    分类: 传智JAVA爬虫学习笔记


5.2.7. Selector选择器组合使用

  1. el#id: 元素+ID,比如: h3#city_bj
  2. el.class: 元素+class,比如: li.class_a
  3. el[attr]: 元素+属性名,比如: span[abc]
  4. 任意组合: 比如:span[abc].s_name
  5. ancestor child: 查找某个元素下子元素,比如:.city_con li 查找"city_con"下的所有li
  6. parent > child: 查找某个父元素下的直接子元素,比如:.city_con > ul > li 查找city_con第一级(直接子元素)的ul,再找所有ul下的第一级li
  7. parent > *: 查找某个父元素下所有直接子元素

测试类文件

    Test
    public void testSelecot2()throws Exception{
        //解析html文件,获取Document
        Document doc = Jsoup.parse(new File("C:\\Users\\16259\\Desktop\\test.html"), "utf8");

//        el#id: 元素+ID,比如: h3#city_bj
//        Element element = doc.select("h3#city_bj").first();

//        el.class: 元素+class,比如: li.class_a
//        Element element = doc.select("li.class_a").first();

//        el[attr]: 元素+属性名,比如: span[abc]
//        Element element = doc.select("span[abc]").first();

//        任意组合: 比如:span[abc].s_name
//        Element element = doc.select("span[abc].s_name").first();

//        ancestor child: 查找某个元素下子元素,比如:.city_con li 查找"city_con"下的所有li
//        Elements elements = doc.select(".city_con li");
//        for (Element element : elements) {
//            System.out.println(element.text());
//        }

//        parent > child: 查找某个父元素下的直接子元素,比如:.city_con > ul > li 查找city_con第一级(直接子元素)的ul,再找所有ul下的第一级li
//        Elements elements = doc.select(".city_con > ul >li");
//        for (Element element : elements) {
//            System.out.println(element.text());
//        }

//        parent > *: 查找某个父元素下所有直接子元素
        Elements elements = doc.select(".city_con > ul > *");
        for (Element element : elements) {
            System.out.println(element.text());
        }

//        System.out.println("获取到的内容是: "+element.text());
    }


扫描二维码,在手机上阅读

推荐阅读: