Que HTML Parser es el mejor?

Código de una gran cantidad de analizadores. Hasta ahora, yo estaba usando HtmlUnit navegador sin interfaz gráfica para el análisis y el navegador de automatización.

Ahora, quiero separar tanto las tareas.

Ya que el 80% de mi trabajo consiste sólo en el análisis, quiero usar un poquito de HTML parser porque se tarda mucho tiempo en HtmlUnit a la primera carga de una página, luego de obtener el código fuente y, a continuación, analizar.

Quiero saber cual analizador de HTML es la mejor. El analizador sería mejor si se está cerca de HtmlUnit analizador.


EDICIÓN:

Por la mejor, quiero por lo menos las siguientes características:

  1. Velocidad
  2. La facilidad para localizar cualquier HtmlElement por su «id» o «nombre» o «tipo de etiqueta».

Sería aceptar para mí si no se limpia el código HTML sucio. No necesito para limpiar cualquier tipo de código HTML. Yo sólo necesitan de una manera más fácil de moverse a través de HtmlElements y datos de la cosecha de ellos.

  • ¿Qué quiere decir «mejor»? ¿Te refieres a la velocidad, la facilidad de la transición de la aplicación actual, la adhesión a los estándares del W3C, algo que no ha pensado? Su pregunta implica velocidad, sino que también implica un desarrollo en el tiempo de transición. Algunas aclaraciones pueden ayudar a otros en la recomendación de buena analizadores que se ajuste mejor a tus necesidades.
  • Su declaración de ‘código de una gran cantidad de analizadores’ no parece concordar con la pregunta. Qué quieres decir con que tengo que usar html analizadores mucho?’
  • Creo que esta pregunta es lo suficientemente específico para ser exentos de la «no constructiva» cerca de la razón.
  • Voto a re-abrir este por favor. Esto es lo suficientemente específico y no debe ser cerrado.
  • La lentitud puede ser que si el analizador de descargas DTD o XSD fuera de la internet.
  • Sí, algunas personas en la MANERA de pelear una guerra santa en contra de las guerras santas de «lo mejor de» preguntas. Tan molesto. La respuesta de voto indica claramente la utilidad de esta pregunta.

3 Kommentare

  1. 387

    Auto enchufe: me acaban de lanzar un nuevo Java HTML parser: jsoup. Lo menciono aquí porque creo que va a hacer lo que usted está después.

    Su parte truco es un selector CSS sintaxis para encontrar elementos, por ejemplo:

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

    Ver el Selector de javadoc para obtener más información.

    Este es un nuevo proyecto, así que cualquier idea de mejora son muy bienvenidos!

    • Esto es fantástico, y me encanta el selector CSS de apoyo. Yo apenas sé que estoy usando una biblioteca de Java. 🙂
    • Por favor, no dejen de apoyar esta. Esto es exactamente lo que hemos necesitado para analizar HTML usando el lado del servidor Java! Esto es impresionante! He construido un proxy en sólo un par de horas que modifica todos los src y vínculos href hacerlos rutas completas para el servidor de origen.
    • He tomado sólo una mirada en ella. Me gusta su interfaz y documentación. Es fácil de entender. 🙂
    • Buen trabajo! Tengo jsoup en marcha y funcionando en menos de 10 minutos.
    • Herramienta impresionante ! terminar mi tarea en 20 líneas de código (incluidos los de importación…lol)
    • jsoup -> Rápido y fácil!
    • Hedley ¿su analizador utiliza ‘regex’.
    • Me he encontrado con algunos problemas al usar este para más páginas web. La página web sólo se pone de corte en un punto determinado. Hay un límite para el tamaño de la cadena que jsoup puede manejar?
    • Increíble, este es taaan enfermos. Yo era capaz de procesar una página HTML en cuestión de minutos. MUCHAS GRACIAS POR ESTE GRAN TRABAJO.
    • El problema con esto es que se cambia el contenido de la página html mediante el formato de la misma. Hay una manera de obtener el código HTML de un elemento como parte del contenido original de la página? [Así, en el ejemplo que acabo de dar doc.toString() no va a ser igual para el contenido html que se pasa como entrada para el método parse.]
    • +1 Jsoup es impresionante!
    • Usando el Emulador de Jsoup 1.7.2 analizar mi 8K archivo html para unos 2-3 min.. demasiado lento!
    • Simplemente impresionante, he escrito un post basado en su trabajo. Muchas gracias ahorro mi tiempo 😉 codingx.blogspot.ser/2014/01/…
    • Me pregunto por qué no Jsoup el uso de la org.w3c.interfaces de dom?
    • puede desactivar bonito de impresión: jsoup.org/apidocs/org/jsoup/nodes/…
    • eso es una maravillosa pieza de trabajo que usted hizo. realmente lo amo.
    • stackoverflow.com/a/12113626/1599699
    • Felicidades de Bélgica. Bien hecho!
    • Utilizar la biblioteca durante muchos años ahora, es simple y maravilloso

  2. 32

    El mejor que he visto hasta ahora es HtmlCleaner:

    HtmlCleaner es de código abierto analizador de HTML escrito en Java. HTML encontrado en la Web es generalmente sucio, mal formado y no aptos para su posterior procesamiento. Para cualquier grave el consumo de tales documentos, es necesario primero limpiar el desorden y traer el orden a las etiquetas, atributos y texto ordinario. Para el documento HTML, HtmlCleaner reordena los elementos individuales y produce XML bien formado. De forma predeterminada, se sigue reglas similares que la mayoría de los navegadores web para crear Modelo de Objeto de Documento. Sin embargo, el usuario puede proporcionar etiqueta personalizada y conjunto de reglas para la etiqueta de filtrado y de equilibrio.

    Con HtmlCleaner puede localizar cualquier elemento mediante XPath.

    Para otras html analizadores ver de este MODO la pregunta.

    • Usted tiene que manejar el proxy de ti mismo, entonces el uso de HtmlCleaner para procesar su secuencia en su lugar. => no es conveniente. T__T
    • No HTMLTidy ser una mejor opción aquí? html-tidy.org
    • Similar rules that the most of web browsers use – Esto no es muy convincente

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea