Fullmenu null

 

24 June 2018

Este sencillo script parsea una página HTML de Internet que contenga una tabla (en nuestro caso identificada por un atributo id pero es fácil adaptarlo a otros casos de uso) y la volcará a un fichero en formato csv

@Grab('org.ccil.cowan.tagsoup:tagsoup:1.2.1')
import org.ccil.cowan.tagsoup.Parser

new File(args[1]).withWriter('UTF-8') { writer ->
    def slurper = new XmlSlurper(new Parser())
    def url = args[0]
    def htmlParser = slurper.parse(url)
    htmlParser.'**'.find {it.@id==args[3] }.tr.each{
        writer.writeLine it.td.collect{"$it".trim()}.join(';')
    }
}

Básicamente el script solicita tres argumentos:

  • URL a parsear

  • Nombre del fichero a generar

  • Identificador de la tabla a descargar

Una vez descargada la página y parseada, buscará el elemento que coincida con el id proporcionado y recorrerá todos sus elementos tr

Para cada elemento tr que encuentre generará una única línea concatenando todos los campos td que contenga


Script
@Grab('org.ccil.cowan.tagsoup:tagsoup:1.2.1')
import org.ccil.cowan.tagsoup.Parser

new File(args[1]).withWriter('UTF-8') { writer ->
    def slurper = new XmlSlurper(new Parser())
    def url = args[0]
    def htmlParser = slurper.parse(url)
    htmlParser.'**'.find {it.@id==args[3] }.tr.each{
        writer.writeLine it.td.collect{"$it".trim()}.join(';')
    }
}