jsoup - Guía rápida
jsoup es una biblioteca basada en Java para trabajar con contenido basado en HTML. Proporciona una API muy conveniente para extraer y manipular datos, utilizando lo mejor de DOM, CSS y métodos similares a jquery. Implementa la especificación WHATWG HTML5 y analiza HTML al mismo DOM que los navegadores modernos.
jsoup libary implementa la especificación WHATWG HTML5 y analiza un contenido HTML al mismo DOM que los navegadores modernos.
La biblioteca jsonp proporciona las siguientes funcionalidades.
Multiple Read Support - Lee y analiza HTML usando URL, archivo o cadena.
CSS Selectors - Puede buscar y extraer datos, utilizando selectores de recorrido DOM o CSS.
DOM Manipulation - Puede manipular los elementos HTML, atributos y texto.
Prevent XSS attacks - Puede limpiar el contenido enviado por el usuario contra una lista blanca segura determinada, para evitar ataques XSS.
Tidy - Genera HTML ordenado.
Handles invalid data - jsoup puede manejar etiquetas no cerradas, etiquetas implícitas y puede crear de manera confiable la estructura del documento.
Configuración del entorno local
JUnit es un marco para Java, por lo que el primer requisito es tener JDK instalado en su máquina.
Requisitos del sistema
JDK | 1,5 o superior. |
---|---|
Memoria | Sin requisitos mínimos. |
Espacio del disco | Sin requisitos mínimos. |
Sistema operativo | Sin requisitos mínimos. |
Paso 1: Verifique la instalación de Java en su máquina
En primer lugar, abra la consola y ejecute un comando java basado en el sistema operativo en el que está trabajando.
SO | Tarea | Mando |
---|---|---|
Ventanas | Abrir consola de comandos | c: \> java -version |
Linux | Terminal de comando abierto | $ java -version |
Mac | Terminal abierta | máquina: <joseph $ java -version |
Verifiquemos la salida para todos los sistemas operativos:
SO | Salida |
---|---|
Ventanas | versión de Java "1.6.0_21" Entorno de ejecución de Java (TM) SE (compilación 1.6.0_21-b07) VM de cliente Java HotSpot (TM) (compilación 17.0-b17, modo mixto, uso compartido) |
Linux | versión de Java "1.6.0_21" Entorno de ejecución de Java (TM) SE (compilación 1.6.0_21-b07) VM de cliente Java HotSpot (TM) (compilación 17.0-b17, modo mixto, uso compartido) |
Mac | versión de Java "1.6.0_21" Entorno de ejecución de Java (TM) SE (compilación 1.6.0_21-b07) Servidor VM Java HotSpot (TM) de 64 bits (compilación 17.0-b17, modo mixto, uso compartido) |
Si no tiene Java instalado en su sistema, descargue el kit de desarrollo de software (SDK) de Java desde el siguiente enlace https://www.oracle.com. Asumimos Java 1.6.0_21 como la versión instalada para este tutorial.
Paso 2: configurar el entorno JAVA
Selecciona el JAVA_HOMEvariable de entorno para apuntar a la ubicación del directorio base donde está instalado Java en su máquina. Por ejemplo.
SO | Salida |
---|---|
Ventanas | Establezca la variable de entorno JAVA_HOME en C: \ Archivos de programa \ Java \ jdk1.6.0_21 |
Linux | exportar JAVA_HOME = / usr / local / java-current |
Mac | exportar JAVA_HOME = / Library / Java / Home |
Agregue la ubicación del compilador de Java a la ruta del sistema.
SO | Salida |
---|---|
Ventanas | Añade la cadena C:\Program Files\Java\jdk1.6.0_21\bin al final de la variable del sistema, Path. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Mac | no requerido |
Verifique la instalación de Java usando el comando java -version como se explicó anteriormente.
Paso 3: Descarga jsoup Archive
Descargue la última versión del archivo jar jsoup desde Maven Repository . En el momento de escribir este tutorial, hemos descargado jsoup-1.8.3.jar y lo hemos copiado en la carpeta C: \> jsoup.
SO | Nombre de archivo |
---|---|
Ventanas | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Mac | jsoup-1.8.3.jar |
Paso 4: configurar el entorno jsoup
Selecciona el JSOUP_HOMEvariable de entorno para apuntar a la ubicación del directorio base donde jsoup jar se almacena en su máquina. Supongamos que hemos almacenado jsoup-1.8.3.jar en la carpeta JSOUP.
No Señor | SO y descripción |
---|---|
1 | Windows Establezca la variable de entorno JSOUP_HOME en C: \ JSOUP |
2 | Linux exportar JSOUP_HOME = / usr / local / JSOUP |
3 | Mac exportar JSOUP_HOME = / Library / JSOUP |
Paso 5: Establecer la variable CLASSPATH
Selecciona el CLASSPATH variable de entorno para apuntar a la ubicación del jar JSOUP.
No Señor | SO y descripción |
---|---|
1 | Windows Establezca la variable de entorno CLASSPATH en% CLASSPATH%;% JSOUP_HOME% \ jsoup-1.8.3.jar;.; |
2 | Linux export CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
3 | Mac export CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
El siguiente ejemplo mostrará el análisis de una cadena HTML en un objeto de documento.
Sintaxis
Document document = Jsoup.parse(html);
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
Descripción
El método parse (String html) analiza el HTML de entrada en un nuevo documento. Este objeto de documento se puede utilizar para recorrer y obtener detalles del dominio html.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body><p>Sample Content</p></body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Sample Title
Sample Content
El siguiente ejemplo mostrará el análisis de una cadena de fragmentación HTML en un objeto Element como cuerpo html.
Sintaxis
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena de fragmentos HTML.
body - representa los elementos secundarios del cuerpo del documento y es equivalente a document.getElementsByTag ("body").
Descripción
El método parseBodyFragment (String html) analiza el HTML de entrada en un nuevo documento. Este objeto de documento se puede utilizar para recorrer y obtener detalles del fragmento de cuerpo html.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<div><p>Sample Content</p>";
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Elements paragraphs = body.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Sample Content
El siguiente ejemplo mostrará cómo obtener un HTML de la web usando una URL y luego encontrar sus datos.
Sintaxis
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para conectar la URL y obtener la cadena HTML.
url - URL de la página html para cargar.
Descripción
El método connect (url) establece una conexión con la url y el método get () devuelve el html de la url solicitada.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
System.out.println(document.title());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Google
El siguiente ejemplo mostrará cómo obtener un HTML del disco usando un archivo y luego encontrar sus datos.
Sintaxis
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para conectar la URL y obtener la cadena HTML.
url - URL de la página html para cargar.
Descripción
El método connect (url) establece una conexión con la url y el método get () devuelve el html de la url solicitada.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException, URISyntaxException {
URL path = ClassLoader.getSystemResource("test.htm");
File input = new File(path.toURI());
Document document = Jsoup.parse(input, "UTF-8");
System.out.println(document.title());
}
}
test.htm
Cree el siguiente archivo test.htm en la carpeta C: \ jsoup.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Sample Title
El siguiente ejemplo mostrará el uso de métodos similares a DOM después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
sampleDiv - El objeto del elemento representa el elemento del nodo html identificado por el id "sampleDiv".
links - El objeto Elementos representa los múltiples elementos de nodo identificados por la etiqueta "a".
Descripción
El método parse (String html) analiza el HTML de entrada en un nuevo documento. Este objeto de documento se puede utilizar para recorrer y obtener detalles del dominio html.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
Element sampleDiv = document.getElementById("sampleDiv");
System.out.println("Data: " + sampleDiv.text());
Elements links = sampleDiv.getElementsByTag("a");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
El siguiente ejemplo mostrará el uso de métodos de selector después de analizar una cadena HTML en un objeto de documento. jsoup admite selectores similares a los selectores CSS.
Sintaxis
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
sampleDiv - El objeto del elemento representa el elemento del nodo html identificado por el id "sampleDiv".
links - El objeto Elementos representa los múltiples elementos de nodo identificados por la etiqueta "a".
Descripción
El método document.select (expresión) analiza la expresión del selector CSS dada para seleccionar un elemento dom html.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
// img with src ending .png
Elements pngs = document.select("img[src$=.png]");
for (Element png : pngs) {
System.out.println("Name: " + png.attr("name"));
}
// div with class=header
Element headerDiv = document.select("div.header").first();
System.out.println("Id: " + headerDiv.id());
// direct a after h3
Elements sampleLinks = document.select("h3 > a");
for (Element link : sampleLinks) {
System.out.println("Text: " + link.text());
}
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
El siguiente ejemplo mostrará el uso del método para obtener el atributo de un elemento dom después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
link - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
link.attr() - El método attr (atributo) recupera el atributo del elemento.
Descripción
El objeto Element representa un elemento dom elmento y proporciona varios métodos para obtener el atributo de un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Href: www.google.com
El siguiente ejemplo mostrará el uso de métodos para obtener texto después de analizar una cadena HTML en un objeto de documento.
Sintaxis
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
link - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
link.text() - El método text () recupera el texto del elemento.
Descripción
El objeto Element representa un dom elment y proporciona varios métodos para obtener el texto de un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Text: Google
El siguiente ejemplo mostrará el uso de métodos para obtener html interno y html externo después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
link - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
link.outerHtml() - El método outerHtml () recupera el elemento html completo.
link.html() - El método html () recupera el html interno del elemento.
Descripción
El objeto Element representa un dom elmento y proporciona varios métodos para obtener el html de un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
El siguiente ejemplo mostrará métodos que pueden proporcionar URL relativas y absolutas presentes en la página html.
Sintaxis
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para conectarse a una url y obtener el contenido html.
link - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
link.attr("href"): Proporciona el valor de href presente en la etiqueta de anclaje. Puede ser relativo o absoluto.
link.attr("abs:href") : Proporciona la URL absoluta después de resolver contra el URI base del documento.
link.absUrl("href") : Proporciona la URL absoluta después de resolver contra el URI base del documento.
Descripción
El objeto Element representa un dominio y proporciona métodos para obtener URL relativas y absolutas presentes en la página html.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
El siguiente ejemplo mostrará el uso del método para establecer atributos de un elemento dom, actualizaciones masivas y agregar / eliminar métodos de clase después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
link - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
link.attr() - método attr (atributo, valor) establece el atributo del elemento el valor correspondiente.
link.addClass() - El método addClass (class) agrega la clase bajo el atributo de clase.
link.removeClass() - El método removeClass (class) elimina la clase bajo el atributo de clase.
Descripción
El objeto Element representa un elemento dom elmento y proporciona varios métodos para obtener el atributo de un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+ "<div class='comments'><a href='www.sample1.com'>Sample1</a>"
+ "<a href='www.sample2.com'>Sample2</a>"
+ "<a href='www.sample3.com'>Sample3</a><div>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//Example: set attribute
Element link = document.getElementById("googleA");
System.out.println("Outer HTML Before Modification :" + link.outerHtml());
link.attr("href","www.yahoo.com");
System.out.println("Outer HTML After Modification :" + link.outerHtml());
System.out.println("---");
//Example: add class
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :" + div.outerHtml());
link.addClass("header");
System.out.println("Outer HTML After Modification :" + div.outerHtml());
System.out.println("---");
//Example: remove class
Element div1 = document.getElementById("imageDiv");
System.out.println("Outer HTML Before Modification :" + div1.outerHtml());
div1.removeClass("header");
System.out.println("Outer HTML After Modification :" + div1.outerHtml());
System.out.println("---");
//Example: bulk update
Elements links = document.select("div.comments a");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
links.attr("rel", "nofollow");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Outer HTML Before Modification :<a id="googleA" href="www.google.com">Google</a>
Outer HTML After Modification :<a id="googleA" href="www.yahoo.com">Google</a>
---
Outer HTML Before Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com">Google</a>
</div>
Outer HTML After Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com" class="header">Google</a>
</div>
---
Outer HTML Before Modification :<div id="imageDiv" class="header">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
Outer HTML After Modification :<div id="imageDiv" class="">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
---
Outer HTML Before Modification :<a href="www.sample1.com">Sample1</a>
<a href="www.sample2.com">Sample2</a>
<a href="www.sample3.com">Sample3</a>
Outer HTML Before Modification :<a href="www.sample1.com" rel="nofollow">Sample1</a>
<a href="www.sample2.com" rel="nofollow">Sample2</a>
<a href="www.sample3.com" rel="nofollow">Sample3</a>
El siguiente ejemplo mostrará el uso del método para establecer, anteponer o agregar html a un elemento dom después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.html("<p>This is a sample content.</p>");
div.prepend("<p>Initial Text</p>");
div.append("<p>End Text</p>");
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
div - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
div.html() - El método html (contenido) reemplaza el html externo del elemento con el valor correspondiente.
div.prepend() - El método anteponer (contenido) agrega el contenido antes del html externo.
div.append() - el método append (content) agrega el contenido después del html externo.
Descripción
El objeto Element representa un dom elmento y proporciona varios métodos para establecer, anteponer o agregar html a un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.html("<p>This is a sample content.</p>");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("<p>Initial Text</p>");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("<p>End Text</p>");
System.out.println("After Append :\n" + div.outerHtml());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
<p>This is a sample content.</p>
</div>
After Prepend :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
</div>
After Append :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
<p>End Text</p>
</div>
Outer HTML Before Modification :
<span>Sample Content</span>
Outer HTML After Modification :
<span>Sample Content</span>
El siguiente ejemplo mostrará el uso del método para establecer, anteponer o agregar texto a un elemento dom después de analizar una cadena HTML en un objeto Document.
Sintaxis
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.text("This is a sample content.");
div.prepend("Initial Text.");
div.append("End Text.");
Dónde
document - el objeto de documento representa el DOM HTML.
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML.
div - El objeto de elemento representa el elemento de nodo html que representa la etiqueta de anclaje.
div.text() - El método text (content) reemplaza el contenido del elemento con el valor correspondiente.
div.prepend() - El método anteponer (contenido) agrega el contenido antes del html externo.
div.append() - el método append (content) agrega el contenido después del html externo.
Descripción
El objeto Element representa un dom elmento y proporciona varios métodos para establecer, anteponer o agregar html a un elemento dom.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.text(This is a sample content.");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("Initial Text.");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("End Text.");
System.out.println("After Append :\n" + div.outerHtml());
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
This is a sample content.
</div>
After Prepend :
<div id="sampleDiv">
Initial Text.This is a sample content.
</div>
After Append :
<div id="sampleDiv">
Initial Text.This is a sample content.End Text.
</div>
El siguiente ejemplo mostrará la prevención de ataques XSS o ataques de secuencias de comandos entre sitios.
Sintaxis
String safeHtml = Jsoup.clean(html, Whitelist.basic());
Dónde
Jsoup - clase principal para analizar la cadena HTML dada.
html - Cadena HTML inicial.
safeHtml - HTML limpio.
Whitelist - Objeto para proporcionar configuraciones predeterminadas para salvaguardar html.
clean() - limpia el html usando la lista blanca.
Descripción
El objeto Jsoup desinfecta un html utilizando configuraciones de lista blanca.
Ejemplo
Cree el siguiente programa java usando cualquier editor de su elección en, por ejemplo, C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
public class JsoupTester {
public static void main(String[] args) {
String html = "<p><a href='http://example.com/'"
+" onclick='checkData()'>Link</a></p>";
System.out.println("Initial HTML: " + html);
String safeHtml = Jsoup.clean(html, Whitelist.basic());
System.out.println("Cleaned HTML: " +safeHtml);
}
}
Verifica el resultado
Compila la clase usando javac compilador de la siguiente manera:
C:\jsoup>javac JsoupTester.java
Ahora ejecute JsoupTester para ver el resultado.
C:\jsoup>java JsoupTester
Vea el resultado.
Initial HTML: <p><a href='http://example.com/' onclick='checkData()'>Link</a></p>
Cleaned HTML: <p><a href="http://example.com/" rel="nofollow">Link</a></p>