Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
主要功能
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可操作HTML元素、属性、文本; Jsoup是基于MIT协议发布的,可放心使用于商业项目。 专门针对几种常见的应用场景举例说明Jsoup 是如何优雅的进行HTML 文档处理的。 Jsoup 可以从包括字符串、URL地址以及本地文件来加载HTML 文档,并生成Document 对象实例。
// 直接从字符串中输入HTML 文档
String 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
File input = new File("D:/test.html");
Document doc = Jsoup.parse(input,"UTF-8","网址/");
**解析并提取HTML 元素**
input = new File("D:/test.html");
Document doc = Jsoup.parse(input, "UTF-8","网址/");
Element content =doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref =link.attr("href");
String linkText =link.text();
}
像getElementById 和getElementsByTag 方法跟JavaScript 的方法名称是一样的,功能也完全一致,可以根据节点名称或者是HTML 元素的id 来获取对应的元素或者元素列表。
File input = new File("D:\test.html");
Document doc =Jsoup.parse(input,"UTF-8","网址");
Elements links = doc.select("a[href]");
Elements pngs = doc.select("img[src$=.png]");
Element masthead =doc.select("div.masthead").first();
Elements resultLinks = doc.select("h3.r >a");
Jsoup 只需简单的几行代码即可完成HTML解析。
评论区