Java爬虫html解析神器Jsoup

jsoup是一个用于解析、提取、操作HTML的开源Java函式库。在我眼里就是一个java版本的jquery,非常强大!!!
jsoup在2009年由亚马逊软件开发经理Jonathan Hedley所编写。他在MIT许可(类似知识共享授权条款的宽松自由软件授权条款)下发布的。
Hedley编写jsoup的用意在于“处理所有种类的HTML。从原始和验证,到无效标签汤。

mvn依赖

最新版本在这里找:https://mvnrepository.com/artifact/org.jsoup/jsoup
当前的最新版本是

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.3</version>
        </dependency>

Jsoup解析方法

Jsoup支持四种方式解析Document,即可以输入四种内容得到一个Document:

  • 解析字符串
  • 解析body片段
  • 从一个URL解析
  • 从一个文件解析

本节转载自:- https://www.cnblogs.com/youyoui/p/11065923.html

字符串解析示例

字符串中必须包含head和body元素。

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

HTML片段解析

String html = "<div><p>Lorem ipsum.</p>";
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();

从URL解析

Document doc = Jsoup.connect("http://example.com/").get();
String title = doc.title();

还可以携带cookie等参数:

Document doc = Jsoup.connect("http://example.com")
  .data("query", "Java")
  .userAgent("Mozilla")
  .cookie("auth", "token")
  .timeout(3000)
  .post();

从文件解析

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

实战

全部API我就不列出来了,可以到 https://jsoup.org/查阅。我只列出我常用的。

大多数的写法与jquery类似,根据IDEA的智能提示就可以直接按jquery的写法处理了。

找出class="ewb-info-item2"所有元素

Document document = Jsoup.parse(htmlSource);
Elements lis = document.getElementsByClass("ewb-info-item2");
System.out.println(lis);

获取所有子div

 Elements divs = li.getElementsByTag("div");

参考

猜你喜欢

转载自blog.csdn.net/lxyoucan/article/details/124711305