public class SimpleScraper
extends java.lang.Object
implements java.util.Iterator<java.lang.String[]>
Esta es una clase muy sencilla para servir como ejemplo sin complicaciones. No funciona con el protocolo "https" ni frente a servidores que rechazan peticiones de clientes "no reconocidos" (los navegadores al uso). Todo puede hacerse, pero complicaría el código, lo que es contrario al interés de este ejemplo.
Los objetos se construyen ligados a una página web concreta y para una expresión regular dada,
de modo que en cualquier momento puede ejecutarse la obtención de la página, para después ir
extrayendo el material requerido conforme al patrón Iterator
. Los resutados obtenidos
en cada "Match" se proporcionan en un String[]
que recoge cada uno de los grupos de
captura de la expresión regular (el 0 es el match completo).
La información de pasos de linea en la página web leida es codificada como "\n" aunque tenga otra codificación en origen. En el procesaiento de la expresión regular el "." incluye los pasos de linea (ver Pattern.DOTALL), y los pasos de linea determinan "matches" para "^"y "$" (ver Pattern.MULTILINE)
Constructor and Description |
---|
SimpleScraper(java.lang.String url,
java.lang.String regEx)
Genera un nuevo Scraper asociado a una página web concreta y un procesamiento dado.
|
Modifier and Type | Method and Description |
---|---|
boolean |
hasNext()
Devuelve
true si la iteración tiene más elementos. |
java.lang.String[] |
next()
Devuelve el siguiente elemento en la iteración.
|
void |
scrap()
Ejecuta la lectura de la página web de modo que queda en estado preaprado para recoger los
resultados mediante
hasNext()-next() |
public SimpleScraper(java.lang.String url, java.lang.String regEx) throws java.net.MalformedURLException
url
- La URL De la página web.regEx
- La expresión regular a aplicar.java.net.MalformedURLException
- la URL es incorrecta.public boolean hasNext()
true
si la iteración tiene más elementos.hasNext
in interface java.util.Iterator<java.lang.String[]>
true
si la iteración tiene más elementos.public java.lang.String[] next()
next
in interface java.util.Iterator<java.lang.String[]>
public void scrap() throws java.io.IOException
hasNext()-next()
java.io.IOException
- problema en la obtención de la página web.