Java网络爬虫技术《二》Jsoup

Jsoup

当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术。Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 URL 地址、HTML 、文本内容。可以通过DOM、CSS以及类似于JQuery的操作方法来取出和操作数据

DOM 方式遍历文档

元素获取

  1. 根据id查询元素getElementById

    document.getElementById("id");
    
  2. 根据标签获取元素getElementsByTag

    document.getElementsByTag("title").first();
    
  3. 根据class获取元素getElementsByClass

    document.getElementsByClass("item_name").last();
    
  4. 根据属性获取元素getElementsByAttribute

    document.getElementsByAttribute("abc").first();
    

使用选择器语法查找元素

Jsoup elements 对象支持类似于CSS (或JQuery)的选择器语法,来实现非常强大和灵活的查找功能。这个select 方法在Document, Element,或Elements对象中都可以使用。且是上下文相关的,因此可实现指定元素的过滤,或者链式选择访问。Select方法将返回一个Elements集合,并提供一组方法来抽取和处理结果。

Selector选择器概述

  1. tagname: 通过标签查找元素,比如:li

     Elements span = document.select("li");
    
  2. #id: 通过 ID 查找元素,比如:# id

     document.select("#id").text();
    
  3. .class: 通过 class 名称查找元素,比如:.class_a (class标签前面有个 别忘记)

     document.select(".class_a").text();
    
  4. [attribute]: 利用属性查找元素,比如:[abc]

     document.select("[abc]").text();
    
  5. [attr=value]: 利用属性值来查找元素,比如:[class=item_name]

     document.select("[class=item_name]").text();
    

Selector选择器组合使用

el#id : 元素 + ID,例如 p#id

el.class : 元素 + class,例如 div.class_a

el[attr] : 元素 + 属性名,例如 span[abc]

任意组合 : span[abc].class_a

查找某个元素下子元素:比如;.class_a li  就是查找 .class_a 下的所有 li 标签的内容
查找某个父元素下的直接子元素:比如  div#J_goodsList > ul > li  查找 div id为 J_goodsList  第一级(直接子元素)的ul,再找所有ul下的第一级li
父元素>*:  比如 ul > *   查找 ul 标签下所有直接子元素 
发布了46 篇原创文章 · 获赞 61 · 访问量 3250

猜你喜欢

转载自blog.csdn.net/hyx1249273846/article/details/104499292