Jsoup解析html页面,爬虫必备

介绍

Jsoup用于解析html页面,对于爬虫来说,会有大量的html页面反馈回来,解析出特定的信息和内容是非常繁琐的,Jsoup是解析html的神奇工具,可以大大减少工作量

使用方式
  1. Jsoup将html封装成为document,操作起来像 js 和 jqurey 一样,可以使用document.getElementById()、document.getElementsByTagName()等等一系列命令都可以在jsoup中使用
  2. 具有完备的 api 文档
    地址:https://jsoup.org/apidocs/org/jsoup/nodes/Element.html
    ps:可以利用浏览器的翻译变成中文哦~
  3. maven依赖


  org.jsoup
  jsoup
  1.7.2

示例
//将html页面解析成document
Document userDocument = Jsoup.parse(html);
        //获取所有tagname为table的元素
        Elements tableElements = userDocument.getElementsByTag("table");
        for(Element tableElement : tableElements){
            //获取所有table元素下的子元素(不包括孩子的孩子)
            Elements tbodyElements = tableElement.children();
            for(Element tbodyElement : tbodyElements){
                Elements trElements = tbodyElement.children();
                for(Element trElement : trElements){
                    Elements tdElements = trElement.children();
                    String key = tdElements.get(0).text();
                    String value = tdElements.get(1).text();
                    System.out.println("key=="+key.trim());
                    System.out.println("value=="+value);
                }
            }
        }

控台输出结果

key==  余额:
value==259.01
key==  上笔发生日:
value==2018-03-21
key==  未登折笔数:
value==2
key==  账户状态:
value==正常
常用api
1. Jsoup.parse(String html);//解析一个html页面,返回document类型
eg:Document document = Jsoup.parse(html);
2.通过tagname获取所有相同标签document.getEleementsByTag(String name);
 Elements elements = document.getElementsByTag("table");
3. element.children();//获取所有的子元素
eg:Elements elements = element.children();
4.element.attributies();// 获取当前元素的属性
eg: Attributes attributes = element.attributies();
//遍历属性并获得属性名和值
for(Attribute attr : attributes){
  //属性名
  String propertyName = attr.getKey();
  //属性值
  String propertyValue = attr.getVlaue();
}
(未完待续)

你可能感兴趣的:(Jsoup解析html页面,爬虫必备)