Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: neuromind en 30 de Octubre 2015, 14:00

Título: ¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?
Publicado por: neuromind en 30 de Octubre 2015, 14:00
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.
Título: Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
Publicado por: DRANXZ88 en 31 de Octubre 2015, 00:46
Tu pagina web tiene un url para poder filtrar con java pasando el url de la pagina.
Título: Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
Publicado por: neuromind 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.
Título: Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
Publicado por: DRANXZ88 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>
Título: Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
Publicado por: neuromind en 31 de Octubre 2015, 10:55
DRANXZ88 No tiene url son archivos locales.  Datos.html o datos.txt

Título: Re:¿Como extraer valores específicos de un archivo html local usando JAVA?
Publicado por: César Krall 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
Título: Re:¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?
Publicado por: DRANXZ88 en 02 de Noviembre 2015, 20:54
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
Título: Re:¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?
Publicado por: DRANXZ88 en 03 de Noviembre 2015, 17:37
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
Título: Re:¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?
Publicado por: neuromind en 04 de Noviembre 2015, 16:27
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.
Título: Re:¿Como extraer o filtrar valores específicos de archivo html local usando JAVA?
Publicado por: neuromind en 07 de Noviembre 2015, 20:12
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  ;)