700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【Jsoup】HTML解析器 轻松获取网页内容【HTML】

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

时间:2021-05-23 02:56:00

相关推荐

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

web前端|html教程

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

web前端-html教程

比特币交易平台 源码,vscode能运行c吗,老毛桃 ubuntu,精通tomcat,sqlite查看连接,怎么制作旅游网页设计,数据库域名空间,linux服务器如何绑定域名,wordpress主题背景插件,前端框架恶补,爬虫网址地址,php 二维数组去重,维修seo,解说springboot项目,家电维修网站建设,网页走马灯效果,环保主题静态网站模板,dede后台模块栏目显示不全,手机页面不显示滚动条,博彩管理系统下载,淘宝客移动端程序下载lzw

Jsoup简介

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

wpf企业项目源码,ubuntu 自动驾驶,tomcat默认内存是多大,付费文章爬虫,php怎么防范cc攻击,seo领域怎么入门seo公司lzw

Jsoup.jpg

同城手机源码,ubuntu下启动ssh,爬虫需要联网不,php输入类,服装淘宝seolzw

官网地址:/

在官网中下载 jsou-1.8.3.jar 文件,添加到自己项目的lib库中,便可使用Jsoup提供的api,官网中也提供了一套使用指南(Cookbook),便于开发者借鉴。

Jsoup解析HTML得到一个Document对象,通过操作Document的属性来获取HTML页面内容,所以,在开始之前,先介绍一下XML中Node、Element、Document等这些相关概念的区别,防止因概念混淆而导致乱用错用。

相关概念

Jsoup中的继承关系

public abstract class Node implements Cloneable

public class Element extends Node

public class Document extends Element

从Jsoup源码对三者的定义可以看出如下一个树形继承关系:

Node、Element、Document继承关系.jpg

Node(节点)从上述继承关系上可以明确一点,文档中的所有内容都可以看做是一个节点。节点有很多种类型:属性节点(Attribute)、注释节点(Note)、文本节点(Text)、元素节点(Element)等,通常所说的节点是这些多种节点的统称。

Element(元素)相比节点而言,元素则是一个更小范围的定义。元素继承于节点,是节点的子集,所以一个元素也是一个节点,节点拥有的公有属性和方法在元素中也能使用。

Document(文档)文档继承于元素,指整个HTML文档的源码内容,通过 System.out.println(document.toString()); 即可在控制台打印出网页源码内容。

相互转换基于Node、Element和Document之间的“缠绵”关系,可以利用各个类中提供的方法适当转换获取所需对象,以供使用。

使用案例

Jsoup解析Html获取Document对象的方式分为三类:在线Url、Html文本字符串、文件,对应API如下

connect(String url)

parse(String html)

parse(File in, String charsetName)

在获取到Document对象之后,可以结合HTML源码,利用Jsoup提供的api通过class、tag、id、attribute等相关属性获取对应Element,进而得到所需要的网页内容。

下面以Jsoup的官网Cookbook页面为例,解析并获取页面目录内容。

网页内容:

Jsoup Cookbook网页.jpg

网页源码:

jsoup开发指南,jsoup中文使用手册,jsoup中文文档

jsoup

新闻 bugs 讨论 下载 api参考 Cookbook

jsoup » cookbook

jsoup Cookbook(中文版)

入门

解析和遍历一个html文档

输入

解析一个html字符串 解析一个body片断 根据一个url加载Document对象 根据一个文件加载Document对象

数据抽取

使用dom方法来遍历一个Document对象 使用选择器语法来查找元素 从元素集合抽取属性、文本和html内容 URL处理 程序示例:获取所有链接

数据修改

设置属性值 设置元素的html内容 设置元素的文本内容

html清理

消除不受信任的html (来防止xss攻击)

jsoup html parser: copyright © - jonathan hedley

Jsoup解析:

import java.io.IOException;import java.text.ParseException;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;/** * @author 亦枫 * @created_time 1月5日 * @file_user_todo Java测试类 * @blog /users/1c40186e3248/latest_articles */public class JavaTest { /*** 入口函数* @param args* @throws ParseException*/ public static void main(String[] args) throws ParseException { try { //解析Url获取Document对象 Document document = Jsoup.connect("http://www.open-/jsoup/").get(); //获取网页源码文本内容 System.out.println(document.toString()); //获取指定class的内容指定tag的元素 Elements liElements = document.getElementsByClass("content").get(0).getElementsByTag("li"); for (int i = 0; i < liElements.size(); i++) {System.out.println(i + ". " + liElements.get(i).text()); } } catch (IOException e) { System.out.println("解析出错!"); e.printStackTrace(); } }}

解析结果:

Jsoup parse result.jpg

欢迎订阅作者头条号:技术鸟欢迎关注亦枫微信公众号【技术鸟】,一个有态度的技术型公众号!

技术鸟_微信二维码.jpg

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。