Pregunta

Estoy escribiendo una aplicación que lleva en el código HTML de una página y extrae ciertos elementos (como tablas) de la página y devuelve el código HTML para esos elementos. Estoy tratando de hacer esto en Java usando el analizador de Mozilla para simplificar la navegación a través de la página, pero estoy teniendo problemas para extraer el código HTML necesario.

Tal vez toda mi enfoque es erróneo, también conocido como analizador de Mozilla, por lo que si hay mejores soluciones, estoy abierto a sugerencias

String html = ///what ever the code is

MozillaParser p = // instantiate parser


// pass in html to parse which creates a dom object
Document d = p.parse(html);

// get a list of all the form elements in the page
NodeList l =  d.getElementsByTagName("form");

// iterate through all forms
for(int i = 0; i < l.getLength(); i++){

    // get a form
    Node n = l.item(i);

    // print out the html code for just this form.
    // This is the portion I haven't figured out.
    // I just made up the innerHTML method, but thats
    // the end result I'm desiring, a way to just see
    // the html code for a particular node
    System.out.println( n.innerHTML() );
}
¿Fue útil?

Solución

Mozilla analizador parece un exceso aquí, he utilizado Jericho con cierto éxito por sólo el tipo de cosas que está haciendo.

Otros consejos

He tenido un grado de éxito usando htmlcleaner ( http://htmlcleaner.sourceforge.net/): es bastante rápido y tiene opciones para que pueda determinar la forma "estricta" que debería ser. Trato de evitar raspar html siempre que sea posible, sin embargo, por las razones expuestas obivous (datos a través de REST u otra forma de API tiende a ser más fiables, legales, más fácil de analizar etc.etc.).

He codificado una envoltura HTML con Javascript en la plataforma de Mozilla. I paquete de los códigos en dos extensiones para el navegador Firefox. Uno de ellos, llamado como MetaStudio, es una herramienta de definición de esquema de datos que anotar páginas web semánticamente. El otro, llamado como DataScraper, es una herramienta para extraer fragmentos de datos de las páginas web y las formateado en archivos XML.

Todos los códigos fuente son legibles. Por favor, vaya a http://www.gooseeker.com para descargarlos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top