Foro sobre Java SE > Obtener codigo de una web
http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html
choces
no hay un un tema que este en español? llama a cosas raras..
Juan
¿Cosas raras?
choces
si, por ejemplo, en que campo pongo el texto que deseo buscar?
Juan
Ese ejemplo del tutorial te permite capturar el contenido de un URL, no es la solución a la tarea que te han asignado.
Dices que tienes conocimientos "intermedios" de Java. ¿No puedes adaptar ese ejemplo a lo que necesitas?
choces
Java te da la herramientas para hacerlo pero tu debes de se capaz de construirlo. Con eso que te da @choces te enseña a recupera la info de una web, y tienes que buscar más información para procesar toda esa información que recibes, ya sea leyéndola y guardandola en algún lado y después con filtros buscar sobre la información almacenada
antuansoft
Un ejemplo simple y completo, usando JavaSE 1.8
public class NewMain {
public static void main(String[] args) throws MalformedURLException, IOException {
URL oracle = new URL("http://www.oracle.com/");
try (BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream(), Charset.forName("UTF-8")))) {
boolean contains = in.lines().collect(Collectors.joining()).contains("oracle");
System.out.println(contains);
}
}
}
Comprueba si en el contenido de la URL existe el texto "oracle", en cuyo caso devuelve true por la consola.
choces
hmm.. vale, estoy usando la funcion:
Pattern pattern = Pattern.compile("(?i)HREF\\s*=\\s*\"(.*?)\"");
pero me gustaria sacar de una larga cadena(no tiene que ser siempre href o un atributo del xhtml) algo asi:
blablablaSTRING UTILblablabla
en que blablabla podria haber caracteres como > o asi < (pero no tiene porque)
o sea, que el teto util este entre strings.
alguna forma?
Juan
En la clase String tienes todos los métodos para localizar y extraer subcadenas.
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html
Otra cuestión son los criterios que uses para localizar las subcadenas de interés.
choces
Sigue un ejemplo, también para JavaSE 1.8, donde se muestra una manera de extraer subcadenas delimitadas de una cadena.
public class NewMain {
private static final String texto = "12345P(primero)lkj5678P(segundo)fffd4(no válido)8555P(tercero)";
private static final String abrir = "P(";
private static final String cerrar = ")";
public static void main(String[] args) {
Map<Integer, Integer> posiciones = new HashMap<>();
int indexOfabrir = texto.indexOf(abrir);
int indexOfcerrar = texto.indexOf(cerrar);
while (indexOfabrir != -1) {
posiciones.put(indexOfabrir, indexOfcerrar);
indexOfabrir = texto.indexOf(abrir, indexOfabrir + abrir.length());
indexOfcerrar = texto.indexOf(cerrar, indexOfabrir + abrir.length());
}
List<String> collect = posiciones.entrySet()
.stream()
.map((Map.Entry<Integer, Integer> entry) -> texto.substring(entry.getKey() + abrir.length(), entry.getValue()))
.collect(Collectors.toList());
System.out.println(collect);
}
}
La salida por consola: [primero, segundo, tercero]
choces

Hola! estoy haciendo un proyecto de final de curso, y lo que quierp hacer es basicamente recopilar informacion de una pagina web, abstraer la informacion que me interesa para luego mostrarla, por ejemplo en Syste.out.printl...
He preguntado a un profesor de forma rapida y me ha dicho que se puede, y que con java es la manera mas facil que con C.
De ser asi, podriais dejarme un ejemplo sencillo de ello con una simple pagina web y un archvo .java?
pd: tengo conocimientos 'intermedios' de java.
muchas gracias comunidad!