Foros del Web » Programación para mayores de 30 ;) » Java »

Extraer URL's de una web con regex

Estas en el tema de Extraer URL's de una web con regex en el foro de Java en Foros del Web. Hola me interesaria recoger solamente las URL's del codigo fuente HTML que guardo en la variable "content". Solo he logrado conseguir que me devuelva algo ...
  #1 (permalink)  
Antiguo 01/02/2008, 06:54
 
Fecha de Ingreso: marzo-2007
Ubicación: Mallorca
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Extraer URL's de una web con regex

Hola me interesaria recoger solamente las URL's del codigo fuente HTML que guardo en la variable "content".


Solo he logrado conseguir que me devuelva algo como esto:
Código:
<a href="http://www.marca.com/corporativo/contacto.html">Contacto</a>
Esta es mi funcion:
Código:
    public List<String> obtenerLinks() {
        String regex = "<\\s*?[a|A]\\s+?.*?>.*?<\\s*?/[a|A]\\s* ?>";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(this.content);
        
        //Voy añadiendo uno a uno los links dentro del ArrayList listalinks
        List listaLinks=new ArrayList();
        while (matcher.find()) {
            listaLinks.add(matcher.group());
        }
        
        //Imprimo los links que encuentro
        System.out.println("Links Encontrados:");
         for (int i = 0; i < listaLinks.size(); i++) {  
             System.out.println(listaLinks.get(i));  
   
         }
        
        //Y el total encontrados.
        System.out.println("Total links encontrados: " + listaLinks.size());
        return listaLinks;
    }
Necesito vuestra ayuda!!! Muchas gracias de antemano ;)
  #2 (permalink)  
Antiguo 02/02/2008, 23:56
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Re: Extraer URL's de una web con regex

Grupos con () ...
Código:
String regex = "<\\s*?[Aa]\\s+?(.*?)>.*?<\\s*?/[Aa]\\s* ?>";
Extraer el 1 grupo ...
Código:
while (matcher.find()) {
  listaLinks.add(matcher.group(1));
}
Aunque todavía le hace falta tomar en cuenta class, style y otros attributos a ese regex.
y eliminar el href=" "

String regex = "<\\s*?[Aa]\\s+?href=\"\\s+?(.*?)\">.*?<\\s*?/[Aa]\\s* ?>";

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.