Pregunta

Estoy teniendo un pequeño problema en Java. La forma de hacerlo:. Quiero buscar en un archivo HTML para el href etiquetas y src, y luego quiero obtener la URL asociada a que las etiquetas

¿Cuál es la mejor manera de hacerlo?

Gracias por la ayuda. Saludos cordiales.

¿Fue útil?

Solución

Este es el código que utilicé para lograr exactamente lo que desea hacer, pero primero te voy a dar algunos consejos.

Si estás en un entorno Java Swing, asegúrese de utilizar los métodos en los paquetes javax.swing.text.html y javax.swing.text.html.parser. Por desgracia, están destinados principalmente para uso en un JEditorPane, pero aun así sigo recomendando encarecidamente que se tome un vistazo a estos.

Hay una clase en la API Java 6 HTML.Tag llamada que identifica iniciar el HTML y etiquetas de cierre, que luego se puede utilizar con el fin de determinar dónde están los enlaces que desea que su programa a seguir. http://java.sun.com/javase/6/docs/api/javax/swing/text/html/HTML.Tag.html

Cuando escribí un programa muy similar a este, solía 3 métodos principales:

public void handleStartTag(HTML.Tag t, MUtableAttributeSet atts, int pos)
public void handleEndTag(HTML.Tag t, int pos)
public void handleText(char[] text, int pos)

Si necesita más ayuda sobre cómo escribir estos métodos, usted puede mensaje yo, pero en el fondo, que busca una etiqueta inicial y una etiqueta final y luego de que se le haya identificado la url y luego se puede proceder a el siguiente paso, que está siguiendo la dirección URL.

Para seguir la url, yo le aconsejo que use el objeto JEditorPane. La interfaz javax.swing.event.HyperlinkListener define sólo un método, hyperlinkUpdate (HyperlinkEvent e), que se puede pasar la dirección URL en y luego llamar .setPage (evt.getURL ()) en el objeto JEditorPane. Esto luego actualizar el panel con la nueva página y permitirá iniciar el proceso de nuevo.

Me Msg si tiene alguna hubieron problemas y por favor voten esta respuesta!

Otros consejos

¿Quieres hacer esto como una tarea de edición de una sola vez, o necesita un (es decir, código) aplicación sistemática? En el segundo caso, encontrar una aplicación Java analizador HTML y recorrer el árbol DOM.

http://java-source.net/open-source/html-parsers

Tome un vistazo a esta pregunta:

La respuesta que utilicé fue JTidy

Puede utilizar Rhino , a continuación, cargar el archivo html. Una vez que se carga puede getElementBy utilizado para ir a cualquier nodo o para obtener valor.

Si el archivo es un documento XHTML , que es un documento XML estándar y la forma de analizar la estopa que está usando jdom . Jdom es muy potente y fácil de usar y entender.

Si usted tiene un documento HTML puede intentar HTMLParser , en particoular la clase etiqueta de enlace .

Me gustaría echar un vistazo a tagsoup , que construirá un DOM árbol de cualquier documento HTML, incluso los más no conformes.

A continuación, utilice XPath y iterar sobre la NodeList devuelto por:

// a

y

// img

He utilizado el Neko HTML Analizador con éxito para este tipo de cosas (captura de imágenes).

import org.cyberneko.html.parsers.DOMParser;
import org.w3c.dom.Node;

public class TestParser {

     public static void main(String[] argv) throws Exception {
          DOMParser parser = new DOMParser();
          for (int i = 0; i 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top