美文网首页
Jsoup解析HTML基础用法

Jsoup解析HTML基础用法

作者: Micrason | 来源:发表于2016-06-28 14:23 被阅读802次

Jsoup可以解析网络和本地HTML,常用一般为通过网址解析网页,解析网页可以通过get和post方法获取网页内容。

解析本地HTML:
String html = "<html><head><title>First parse</title></head><body><p>Parsed HTML into a doc.</p></body></html>";
Document document = Jsoup.parse(html);

当然,即便你提供的HTML格式不完整,对Jsoup而言,并不是什么问题。

获取网页HTML:
  • 使用get方法
try {
         Document document = Jsoup.connect("http://www.jianshu.com/").get();
     } catch (IOException e) {
          e.printStackTrace();
     }
  • 使用post方法
 try {
         //使用post方法请求网页时,其data()方法支持Map传参,同时也可以添加userAgent(用户认证)以及cookie
         Document document = Jsoup.connect("http://www.jianshu.com/")
                 .data("key", "value")
                 .timeout(5000)
                 .post();
     } catch (IOException e) {
         e.printStackTrace();
     }

注意:以上两个方法都需要在异步线程中进行。


Jsoup中一些方法的应用:
  • 常用方法select()

通过此方法可以查询用id或者class标志的HTML标签,如果是id,select方法中的参数传#id(例:select(#content)),如果是class,则为 标签名.class名(例:select(div.content))

  • getElementById()

获取HTML文档中指定id的Element,HTML文档中Id的定义是唯一的,因此通过此方法获取的是一个唯一的元素。

Element element = getElementById("content");
  • getElementsByTag()

获取HTML文档中指定标签名的所有元素,得到的以一个Elements集合。

Elements elements = getElementsByTag("div");
  • getElementsByClass()

获取HTML文档中指定class名的所有元素

Elements elements = getElementsByClass("content");
  • getElementsByAttribute()/attr()

获去指定属性名的所以Element,例如获取HTML文档下的所有图片链接

 List<String> imageUrls = new ArrayList<>();
 Elements elements = document.getElementsByAttribute("data-src");
 for (Element element : elements) {
      String imageUrl = element.select("img").first().attr("data-src");
      imageUrls.add(imageUrl);
 }
  • first()

很多时候我们通过getElemetnts...()方法获取的为一个Element集合,这时候我们就可以通过first()方法获取其第一个Element。

Element element = document.select("div.content").first();
  • text()

如果我们需要获取具体标签下的文本内容就可以使用text()方法,例如我们需要获取div标签class名为content下的h1标签中的内容

String text = document.select("div.content").first().getElementsByTag("h1").first().text();

其它更多用法详见Jsoup官网:https://jsoup.org/

相关文章

  • Jsoup解析HTML基础用法

    Jsoup可以解析网络和本地HTML,常用一般为通过网址解析网页,解析网页可以通过get和post方法获取网页内容...

  • 记一次jsoup的使用

    Jsoup是用于解析HTML,就类似XML解析器用于解析XML。 Jsoup它解析HTML成为真实世界的HTML。...

  • HTML&XML解析器--Jsoup

    HTML&XML解析器 一.Jsoup概述 Jsoup简介jsoup是一款Java的HTML解析器,可直接解析某个...

  • Java爬虫之Jsoup 基础语法

    Jsoup介绍: Jsoup 是一个 Java 的开源HTML解析器,可直接解析某个URL地址、HTML文本内容。...

  • Jsoup实战_1_选择器

    Jsoup简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了...

  • Android 使用 jsoup 解析 html

    一、什么是jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它...

  • 没壁纸用了?用Jsoup写一个图片爬虫吧!

    1. Jsoup Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供...

  • 【Jsoup】HTML解析器,轻松获取网页内容

    Jsoup简介 jsoup 是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一...

  • 爬虫之Jsoup

    Jsoup简介jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一...

  • jsoup完整教程

    jsoup jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套...

网友评论

      本文标题:Jsoup解析HTML基础用法

      本文链接:https://www.haomeiwen.com/subject/cnltjttx.html