Autor Tema: ¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?  (Leído 6177 veces)

neuromind

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Saludos,

Necesito extraer únicamente  estos valores : "4069278676" "4068657274"
de un archivo html que contiene por ejemplo :

Código: [Seleccionar]
<div class="selector mode-advanced" tabindex="1" role="checkbox" aria-label="Follow Greymere Trout (@greymeretrout2)" aria-checked="false"><i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4069278676"></div>
<div class="selector mode-advanced" tabindex="2" role="checkbox" aria-label="Follow nairobys garcia (@nairobysgarcia6)" aria-checked="false"><i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4068657274"></div>

Se puede realizar con Java?

Si alguien me puede guiar por favor tengo una semana buscando como hacerlo pero no doy pie con bola.

Estoy tratando de usar Jsoup pero me parece que no es la librería adecuada.

Uso la herramienta Eclipse.

Gracias de antemano por cualquier colaboración o ayuda que me puedan ofrecer.
« Última modificación: 02 de Noviembre 2015, 09:42 por César Krall »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
« Respuesta #1 en: 31 de Octubre 2015, 00:46 »
Tu pagina web tiene un url para poder filtrar con java pasando el url de la pagina.

neuromind

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
« Respuesta #2 en: 31 de Octubre 2015, 01:22 »
Tu pagina web tiene un url para poder filtrar con java pasando el url de la pagina.

Hola Dranxz88, Gracias por responder. Pero me gustaría que me guiaras un poco si puedes por favor.

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
« Respuesta #3 en: 31 de Octubre 2015, 01:31 »
Lo que quiero saber la pagina web tiene un url para poder enviarte lo código para filtrar por medio del url  porque este código de la pagina es un fragmento nomas
Código: [Seleccionar]
<div class="selector mode-advanced" tabindex="1" role="checkbox" aria-label="Follow Greymere Trout (@greymeretrout2)" aria-checked="false"><i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4069278676"></div>
<div class="selector mode-advanced" tabindex="2" role="checkbox" aria-label="Follow nairobys garcia (@nairobysgarcia6)" aria-checked="false"><i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4068657274"></div>

neuromind

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
« Respuesta #4 en: 31 de Octubre 2015, 10:55 »
DRANXZ88 No tiene url son archivos locales.  Datos.html o datos.txt

« Última modificación: 02 de Noviembre 2015, 09:41 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
« Respuesta #5 en: 02 de Noviembre 2015, 09:41 »
Hola!

En este hilo se trata un tema parecido y hay código de ejemplo: https://www.aprenderaprogramar.com/foros/index.php?topic=3258.0

Saludos
Responsable de departamento de producción aprenderaprogramar.com

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Hola este es un código de ejemplo con que puede guiarte y adecuarla a tu necesidades
Este es el código de java
Código: [Seleccionar]
package filtrartxt;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class FiltrarTxt {

    public static void main(String[] args) {
        String[] telefonos = new String[10];
        try {
            // Abrimos el archivo
            FileInputStream fis = new FileInputStream("FiltrarTxt.html");
            // Creamos el objeto de entrada
            DataInputStream dis = new DataInputStream(fis);
            // Creamos el Buffer de Lectura
            BufferedReader br = new BufferedReader(new InputStreamReader(dis));
            char[] buffer = new char[1000];
            int leido;
            String texto = "";
            while ((leido = br.read(buffer)) > 0) {
                String datos = new String(buffer, 0, leido);
                texto += datos;
                /*System.out.println("leido-System-> "+datos);*/
            }
            String[] tr = texto.split("<input");

            for (String fila : tr) {
                if (fila.contains("4069278676")) {
                   // System.out.println("---> " + fila);
                    int pos1 = 0;
                    int pos2 = 0;
                    for (int i = 0; i < fila.length(); i++) {
                        if (fila.substring(i, i + 1).equals("4")) {
                            pos1 = i - 2;
                        } else if (fila.substring(i, i + 1).equals(">")) {
                            pos2 = i;
                            break;
                        }
                    }
                    System.out.println(fila.substring(pos1 + 1, pos2));
                }
            }
           
            // Cerramos el archivo
            dis.close();
        } catch (Exception e) { //Catch de excepciones
            System.err.println("Ocurrio un error: " + e.getMessage());
        }
    }

}

Y Este seria el archivo html
Código: [Seleccionar]
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="selector mode-advanced" tabindex="1" role="checkbox" aria-label="Follow Greymere Trout (@greymeretrout2)" aria-checked="false">
<i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4069278676">
</div>
<div class="selector mode-advanced" tabindex="2" role="checkbox" aria-label="Follow nairobys garcia (@nairobysgarcia6)" aria-checked="false">
<i class="icon-check"></i><input type="checkbox" name="unfollow[]" value="4068657274">
</div>
</body>
</html>

Una cosa el archivo tiene que estar en el mismo directorio que tu código en java si quiere poner en otro directorio hay que especificarle nomas la ruta ojala que te sirva cualquier duda a la orden

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Tenes que sacarle este código que puse sin querer es que yo hice para filtrar teléfono de un archivo por eso este código
Código: [Seleccionar]
String[] telefonos = new String[10];
No le hace nada al programa pero no le pertenece nomas tenes que borrar le puse sin querer :D :D :D

neuromind

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
DRANXZ88 Y César Krall Gracias por sus aportes. Valoro mucho sus contribuciones.
Estoy trabajando con ellas para completar este proyecto personal.
Luego les envió lo que llevo realizado. Muchas Gracias.

neuromind

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 5
    • Ver Perfil
Luego de sus invaluables aportes logre conseguir parte de la solución usando Expresiones Regulares en  Java las cuales me permitieron Sustituir Patrones en un archivo txt

Código: [Seleccionar]
import java.io.File;
import java.util.Scanner;
public class ExtDataUserId2 {
public static void main(String[] args) {
// Fichero del que queremos leer
File fichero = new File("HTMLASUSTITUIR.txt" );
int n=(0);
Scanner s = null;
try {
// Leemos el contenido del fichero
s = new Scanner(fichero);
// Leemos linea a linea el fichero
while (s.hasNextLine()) {
String linea = s.nextLine(); // Guardamos la linea en un String
int i = n++;
String regex = "(?:value=\")(\\d{7,10})";
String newlinea = reemplazar(linea, regex ,"value=\""+"Cambiar"+i);
System.out.println(newlinea);      // Imprimimos la linea
}
} catch (Exception ex) {
System.out.println("Mensaje: " + ex.getMessage());
} finally {
// Cerramos el fichero tanto si la lectura ha sido correcta o no
try {
if (s != null)
s.close();
} catch (Exception ex2) {
System.out.println("Mensaje 2: " + ex2.getMessage());
}
}
}

private static String reemplazar(String linea, String busqueda, String reemplazo) {
// TODO Auto-generated method stub
return linea.replaceAll(busqueda, reemplazo);
}
}



Muchas Gracias  ;)
« Última modificación: 09 de Noviembre 2015, 08:47 por César Krall »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".