jsoup

简介

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

功能

  • 从一个url、文件后字符串中解析HTML。
  • 使用DOM或css选择器来查找、取出数据。
  • 可操作HTML元素、属性和文本。

用法

  • 直接在字符串中输入HTML文档:

      String html = "<html><head><title>开源中国社区</title></head><body><p>这里是jsoup 项目的相关文章</p></body></html>";
      Document doc = Jsoup.parse(html);
    
  • 从url解析HTML文档:

      //请求某网址
      Document doc =Jsoup.connect("网址/").get();
      String title = doc.title();
      Document doc =Jsoup.connect("网址/")
      									.data("query", "Java") //请求参数
      									.userAgent("I’mjsoup") //设置User-Agent
      									.cookie("auth", "token") //设置cookie
      									.timeout(3000) //设置连接超时时间
      									.post(); //使用POST方法访问URL
    
  • 从文件解析HTML文档:

      File input = new File("D:/test.html");
      Document doc = Jsoup.parse(input,"UTF-8","网址/");
    
  • 其中,最后一个参数可以不指定,但最好加上。当文件中涉及链接、图片及引用的外部脚本时,当它们使用的是相对路径时,该参数会自动添加为这些url的前缀,如,开源软件 -> 开源软件

  • 提取HTML元素:

  1. 使用传统的DOM方式解析元素。

     File input = new File("D:/test.html");
     Document doc = Jsoup.parse(input, "UTF-8","网址/");
     //根据节点名称或元素id解析
     Element content =doc.getElementById("content");
     Elements links = content.getElementsByTag("a");
     for (Element link : links) {
     	String linkHref =link.attr("href");
     	String linkText =link.text();
     }
    
  2. jsoup提供更简单的方法。

     File input = new File("D:\test.html");
     Document doc =Jsoup.parse(input,"UTF-8","网址");
     
     Elements links = doc.select("a[href]"); // 具有href 属性的链接
     Elements pngs = doc.select("img[src$=.png]");//所有引用png图片的元素
     Element masthead =doc.select("div.masthead").first();// 找出定义了class=masthead 的元素
     Elements resultLinks = doc.select("h3.r >a"); // direct a after h3
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值