Creador OPEN: Componente sParser

Anuncio
Creador OPEN: Component sParser
Creador OPEN:
Componente sParser
En este documento aprenderemos:






Qué es el componente sParser ?
Cómo se inicializa en Concepto WAP ?
Cómo se inicializa en código CreadorOPEN ?
Selectores y filtros
Métodos para manipular selectores
Ejemplos
Qué es el componente sParser ?
El componente sParser es un componente Coldfusion que permite extraer
información de textos y sitios web, utilizando un formato similar a los selectores de
jQuery, utilizandos en Javascript.
Cómo se inicializa en Concepto WAP
Para utilizarlo en Concepto WAP, se debe primero inicializar el componente con el
comando “Evaluar, objeto”, y el atributo “CreateObject” con valor (en este caso
usando las comillas dobles) “creador.base.apis.sparser”.
Luego, ejecutar un comando “Evaluar, parser”, con el atributo “objeto.init” y en valor
especificar la url, archivo o contenido (variable) que deseamos procesar (si no usan
una variable recuerden utilizar las comillas dobles en el valor).
Página 1
Componente sParser en Creador OPEN
Creador OPEN: Componente sParser
Cómo se inicializa en código Creador OPEN
Para utilizarlo en una página con código CreadorOPEN, se debe primero inicializar el
componente con las siguientes lineas:
<cfset objeto=CreateObject(“component”,”creador.base.apis.sparser”)>
<cfset parser=objeto.init(“http://www.tuweb.com”)>
Con esto, estamos listos para consultar la página con los selectores y filtros.
Selectores y Filtros
Los selectores nos permiten acceder de manera rápida a un elemento o grupo
de elementos del contenido de la página o contenido consultado, y mediante
submétodos o funciones, recuperar o manipular esos resultados.
En Creador OPEN los selectores se ejecutan mediante el comando
parser.selector(“comando selector”), y los comandos para un selector
pueden ser:
selector(“*”)
Obtiene todos los tags del contenido consultado.
selector(“tag”)
Obtiene todas las instancias del tag especificado en el contenido consultado.
selector(“.class”)
Obtiene todos los tags que contienen la class aquí definida.
selector(“#id”)
Obtiene todos los tags que contienen el id aquí definido.
selector(“tag.class”)
Obtiene todas las instancias del tag especificado que contienen la class aquí
definida.
selector(“tag#id”)
Obtiene todas las instancias del tag especificado que contienen el id aquí definido.
selector(“tag#id.class”)
Obtiene todas las instancias del tag especificado que contienen el id y la class aquí
definidas.
Página 2
Componente sParser en Creador OPEN
Creador OPEN: Component sParser
selector(“:filtro”)
Aplica el filtro definido a todos los tags del contenido consultado.
Filtros
Los filtros corresponden al comando :filtro agregado a un comando de un selector, y
permiten “filtrar” los resultados del selector.
selector(“tag:even”)
Obtiene solo las instancias pares del tag especificado.
selector(“tag:odd”)
Obtiene solo las instancias impares del tag especificado.
selector(“tag:eq(n)”)
Obtiene unicamente la instancia en la posición n del tag especificado.
selector(“tag:neq(n)”)
Obtiene todas las instancias del tag especificado excepto la instancia en la posición
n.
selector(“tag:gt(n)”)
Obtiene todas las instancias del tag especificado que están después de la posición n
definida.
selector(“tag:lt(n)”)
Obtiene todas las instancias del tag especificado que están antes de la posicion n
definida
selector(“tag:not(comando selector)”)
Obtiene todas las instancias del tag especificado que no coinciden con el comando
selector definido entreparéntesis.
selector(“tag:first”)
Obtiene la primera instancia del tag especificado.
selector(“tag:first-child”)
Obtiene el primer elemento hijo de cada instancia del tag especificado.
selector(“tag:contains(x)”)
Obtiene todas las instancias del tag especificado que contienen el texto definido.
selector(“tag:header”)
Obtiene todos los elementos de encabezado que se encuentran dentro del
comando selector previo o el tag definido.
Página 3
Componente sParser en Creador OPEN
Creador OPEN: Componente sParser
selector(“tag:button”)
Obtiene todos los elementos de tipo botón que se encuentran dentro del tag o
comando selector especificado.
selector(“tag:checkbox”)
Obtiene todos los elementos de tipo checkbox que se encuentran dentro del tag o
comando selector especificado (al igual que todo el resto de los filtros).
selector(“tag:checked”)
Obtiene todos los elementos que están marcados, que se encuentran dentro del tag o
comando selector especificado.
selector(“tag:selected”)
Obtiene todos los elementos que están seleccionados, que se encuentran dentro del
tag o comando selector especificado.
selector(“tag:disabled”)
Obtiene todos los elementos que están desactivados, que se encuentran dentro del
tag o comando selector especificado.
selector(“tag:enabled”)
Obtiene todos los elementos que están activados (no desactivados), que se
encuentran dentro del tag o comando selector especificado.
selector(“tag:empty”)
Obtiene todas las instancias del tag o comando selector especificado que no
contienen elementos hijos.
selector(“tag:input”)
Obtiene todos los elementos de tipo input (input,select,textarea,button), que se
encuentran dentro del tag o comando selector especificado.
selector(“tag:last-child”)
Obtiene el último hijo de cada instancia del tag o comando selector especificado.
selector(“tag:parent”)
Obtiene todas las instancias del tag o comando selector especificado que son el
padre de otro elemento.
selector(“tag:only-child”)
Obtiene todas las instancias del tag o comando selector especificado que son hijos
únicos.
Página 4
Componente sParser en Creador OPEN
Creador OPEN: Component sParser
Filtros de Atributos
Adicionalmente se puede especificar filtros de atributos:
selector(“tag[atributo]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
especificado.
selector(“tag[atributo=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido con el valor especificado.
selector(“tag[atributo!=valor]”)
Obtiene solo los tags o resultados del comando selector, que no contienen el
atributo definido con el valor especificado.
selector(“tag[atributo^=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido comenzando con el valor dado.
selector(“tag[atributo$=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido terminando con el valor dado.
selector(“tag[atributo*=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido conteniendo el valor dado.
selector(“tag[atributo~=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido conteniendo el valor dado, separado por espacios.
selector(“tag[atributo|=valor]”)
Obtiene solo los tags o resultados del comando selector, que contienen el atributo
definido con el valor dado, o comenzando con el valor dado seguido de un guión.
selector(“tag[filtro atributo1] [filtro atributo2]”)
Se pueden especificar más de un filtro de atributo. Aquí se deben cumplir todos los
filtros.
Adicionalmente, se pueden especificar comandos selectores en cascada.
selector(“abuelo_selector padre_selector hijo_selector”)
Obtiene solo los tags que coinciden con el último hijo_selector que se encuentran
dentro del padre_selector y a su vez están dentro del abuelo_selector.
Página 5
Componente sParser en Creador OPEN
Creador OPEN: Componente sParser
Métodos para manipular selectores
El resultado de un selector se puede obtener y manipular con los siguientes
métodos y funciones:
selector(“x”).query()
Obtiene una consulta con una columna por cada atributo de cada etiqueta
encontrada en el selector, más los siguientes campos:
-
-
_tag_name
Nombre de la etiqueta.
_content
Contenido de la etiqueta.
_depth
Nivel de profundidad de la etiqueta.
_begin
Número de caracteres desde inicio de contenido hasta donde
comienza etiqueta encontrada.
_end
Numero de caracteres desde inicio de contenido hasta donde termina
etiqueta encontrada.
selector(“x”).query(x)
Obtiene una consulta al igual que query(), pero permite realizar una consulta
sql previa en x.
selector(“x”).parent()
Obtiene el primer padre de cada etiqueta encontrada en el selector.
selector(“x”).parent(x)
Obtiene el primer padre de cada etiqueta encontrada en el selector que
coincida con el selector definido en x.
selector(“x”).parents()
Obtiene los ancestros de cada etiqueta encontrada en el selector.
selector(“x”).parents(x)
Obtiene los ancestros de cada etiqueta encontrada en el selector que coincida
con el selector definido en x.
selector(“x”).closest(x)
Obtiene las etiquetas más cercanas definidas por el selector en x, de las
etiquetas encontradas en el selector previo.
Página 6
Componente sParser en Creador OPEN
Creador OPEN: Component sParser
selector(“x”).filter(“:filtro”)
Aplica el filtro dado a las etiquetas encontradas en el selector previo.
selector(“x”).html()
Obtiene el contenido html de la primera etiqueta encontrada en el selector
previo.
selector(“x”).html(x)
Reemplaza todos los contenidos de las instancias de etiquetas encontradas
en el selector previo con el contenido definido en x.
selector(“x”).replaceWith(x)
Reemplaza todas las instancias de etiquetas encontradas en el selector previo
con el contenido definido en x.
selector(“x”).text()
Obtiene el contenido de texto combinado de cada uno de los elementos
encontrados en el selector previo, incluyendo cada uno de sus
descendientes.
selector(“x”).text(x)
Reemplaza los contenidos de texto de cada uno de los elementos
encontrados en el selector previo, incluyendo cada uno de sus
descendientes.
Adicionalmente…
Los siguientes métodos pueden aplicarse al parser:
parser.getTitle()
Obtiene el titulo de la página si es html.
parser.getEncoding()
Obtiene el charset de la página consultada.
parser.format()
Tabula el código de la página consultada.
parser.getContent()
Obtiene el contenido del parser. Si fue modificado, así se obtiene modificado.
Página 7
Componente sParser en Creador OPEN
Creador OPEN: Componente sParser
Ejemplos
Los siguientes son algunos ejemplos de selectores.
selector(“img[src$=.png]”)
Obtiene todas las imágenes que contienen una imagen de extensión png.
selector(“p.red:even”)
Obtiene todos los tags p de class red pares.
Ejemplo de aplicación desde inicialización:
Obtiene el valor de la UF del dia del Banco Central.
Descripción:
Obtiene el contenido de texto del segundo tag td (columna) que está dentro
del tag tr (fila) de class odd que a su vez está dentro del tag div de id “ind-dia”
(se utiliza doble # porque en Coldfusion se necesita para escapar el carácter
que es reservado para variables).
En código:
<cfset objeto=CreateObject("component","creador.base.apis.sparser")>
<cfset parser=objeto.init("http://www.bcentral.cl/index.asp")>
<cfset uf=parser.selector("div##ind-dia tr.odd td:eq(2)").text()>
<cfoutput>La UF de hoy es: #uf#</cfoutput>
En Concepto WAP:
Página 8
Componente sParser en Creador OPEN
Descargar