zoukankan      html  css  js  c++  java
  • (二)Jsoup 查找 DOM 元素

    第一节: Jsoup 查找 DOM 元素

        getElementById(String id) 根据 id 来查询 DOM
        getElementsByTag(String tagName) 根据 tag 名称来查询 DOM
        getElementsByClass(String className) 根据样式名称来查询 DOM
        getElementsByAttribute(String key) 根据属性名来查询 DOM
        getElementsByAttributeValue(String key,String value) 根据属性名和属性值来查询 DOM

    Jsoup查找DOM元素

    Jsoup提供了丰富的API来给我们查找我们需要的DOM元素;

    这里例举一些常用的:

    getElementById(String id) 根据id来查询DOM

    getElementsByTag(String tagName) 根据tag名称来查询DOM

    getElementsByClass(String className) 根据样式名称来查询DOM

    getElementsByAttribute(String key) 根据属性名来查询DOM

    getElementsByAttributeValue(String key,String value)  根据属性名和属性值来查询DOM

    实例代码:

     1 package com.javaxk.jsoup;
     2 
     3 import org.apache.http.HttpEntity;
     4 import org.apache.http.client.methods.CloseableHttpResponse;
     5 import org.apache.http.client.methods.HttpGet;
     6 import org.apache.http.impl.client.CloseableHttpClient;
     7 import org.apache.http.impl.client.HttpClients;
     8 import org.apache.http.util.EntityUtils;
     9 import org.jsoup.Jsoup;
    10 import org.jsoup.nodes.Document;
    11 import org.jsoup.nodes.Element;
    12 import org.jsoup.select.Elements;
    13 
    14 public class Demo2 {
    15     
    16     public static void main(String[] args) throws Exception{
    17         CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httpclient实例
    18         HttpGet httpget = new HttpGet("http://www.cnblogs.com/"); // 创建httpget实例
    19           
    20         CloseableHttpResponse response = httpclient.execute(httpget); // 执行get请求
    21         HttpEntity entity=response.getEntity(); // 获取返回实体
    22         String content=EntityUtils.toString(entity, "utf-8");
    23         response.close(); // 关闭流和释放系统资源
    24          
    25         Document doc=Jsoup.parse(content); // 解析网页 得到文档对象
    26          
    27         Element navTopElement=doc.getElementById("site_nav_top"); // 根据id来查询DOM
    28         String navTop=navTopElement.text(); // 返回元素的文本
    29         System.out.println("口号:"+navTop);
    30          
    31         Elements titleElements=doc.getElementsByTag("title"); // 根据tag名称来查询DOM
    32         Element titleElement=titleElements.get(0); // 获取第1个元素
    33         String title=titleElement.text(); // 返回元素的文本
    34         System.out.println("网页标题是:"+title);
    35          
    36         Elements postItemElements=doc.getElementsByClass("post_item"); // 根据样式名称来查询DOM
    37         System.out.println("=======输出post_item==============");
    38         for(Element e:postItemElements){
    39             System.out.println(e.html());
    40             System.out.println("================");
    41         }
    42          
    43        
    44         Elements widthElements=doc.getElementsByAttribute("width"); // 根据属性名来查询DOM
    45         System.out.println("=======输出with的DOM==============");
    46         for(Element e:widthElements){
    47             System.out.println(e.toString());
    48             System.out.println("================");
    49         }
    50          
    51         System.out.println("target-_blank");
    52         Elements targetElements=doc.getElementsByAttributeValue("target", "_blank");  // 根据属性名和属性值来查询DOM
    53         System.out.println("=======输出target-_blank的DOM==============");
    54         for(Element e:targetElements){
    55             System.out.println(e.toString());
    56             System.out.println("================");
    57         }
    58          
    59     }
    60 }
  • 相关阅读:
    夺命雷公狗---node.js---21之项目的构建在node+express+mongo的博客项目6之数据的遍历
    夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据
    夺命雷公狗---node.js---19之项目的构建在node+express+mongo的博客项目4mongodb在项目中的基本引入
    夺命雷公狗---node.js---18之项目的构建在node+express+mongo的博客项目3头尾左侧分离法
    夺命雷公狗---node.js---17之项目的构建在node+express+mongo的博客项目2之一,二级路由
    夺命雷公狗---node.js---16之项目的构建在node+express+mongo的博客项目1
    夺命雷公狗---node.js---15之加密
    夺命雷公狗---node.js---14之DNS
    夺命雷公狗---node.js---13之Buffer的转换
    夺命雷公狗---node.js---12之fs模块文件的操作
  • 原文地址:https://www.cnblogs.com/wishwzp/p/7065872.html
Copyright © 2011-2022 走看看