¿Manipular página web desde Java?
¿Es posible crear una aplicación en Java que manipule una página web dada?
Me explico:
No se si esto suene a hacking, la verdad esta no es la intención. Daré un ejemplo sencillo:
1. Crear una aplicación que abra el navegador (bueno esta primera parte la sé)
2. Luego de abrir el navegador que vaya a la página de Google, y en el textfield de ésta escriba "casa"
Otras opciones serían que, por ejemplo, la aplicación "hiciera click" sobre algún botón de una página dada, o sobre los choice button, entre otros.
¿Me podrían dar por favor alguna sugerencia? o decirme ¿qué librerías me permiten hacer algo así?
Muchas gracias!!!!
- Inicie sesión o regístrese para enviar comentarios
por?
Tal vez es que los ejemplos son demasiado simples, pero no entiendo por qué quieres hacer algo así, de la manera en que describes.
Para empezar, si quieres abrir el navegador en cualquier URL, puedes pedir que se abra el URL (open en Mac, start en Windows) y eso abre el navegador default, o bien puedes ejecutar el navegador con el URL como argumento de línea de comando, prácticamente todos los navegadores leen ese argumento y abren una ventana en ese URL.
Si lo que quieres es mostrar resultados de una búsqueda en Google, es más fácil que tengas grabado el URL de búsqueda de Google y solamente sustituyas un PLACEHOLDER por lo que quieres buscar. O si quieres que aparezca realmente el texto en el campo de búsqueda de google, también hay un URL para eso (google.com/?q=XXXX para buscar XXXX).
El segundo ejemplo, dependiendo de la info que tengas, también puede resolverse simplemente saltándote la página en donde está la liga y yendo directamente a la liga destino. Pero si esa liga cambia o no la conoces, pero sabes dónde está el texto, entonces tienes que hacer un scraper, es decir, obtener todo el texto de la página inicial, buscar el texto que te interesa, y de ahí obtener la liga (necesitas parsear el HTML, ya sea completo o de manera rudimentaria a partir del texto que te interesa). No necesitas un navegador para esto, se puede hacer todo desde Java y si acaso necesitas solamente ya que tengas el URL, mandar al sistema operativo a abrirlo en el navegador default.
Muchas gracias por la
Muchas gracias por la respuesta ezamudio.
Realmente brindo estos ejemplos sencillos para empezar por cosas básicas, y aprender todo ese proceso desde lo más básico
En últimas mi objetivo es crear un programa automatizado que vaya a la página de la bolsa de valores de mi país, descargue los precios de las acciones (que vienen en hojas de excel), y luego lea esas hojas de excel.
La parte de lectura de las hojas de excel me parece sencilla, lo he trabajado mediante una librería llamada jexcel.
Pero lo que no se es como automatizar ese proceso de abrir una página, en este caso la bolsa de valores de Colombia, y "dar click mediante java" en los lugares adecuados para descargar esas hojas de excel. Por eso me refiero a inicialmente a esos procesos sencillos, para aprender poco a poco
Sin embargo con tus respuestas me brindas muchas luces.
Muchas gracias!!!
Si se puedo hacer lo primero
Si se puedo hacer lo primero con java.awt.Robot, pero es totalmente inútil hacerlo para lo que describes después.
Verás, en las páginas web los vinculos que encuentras para descargar cosas o abrir páginas tienen una URI ( Universal Resource Identifier )
Si conoces el URI puedes crear un programa por ejemplo con HttpClient y hacer la descarga automáticamente.
Hola soy nuevo en esto de Manipular Web desde Java
Necesito, saber como puedo conectarme a un sitio web, luego rellenar campos de algún formulario y enviar el formulario todo desde el código de la aplicación.
Puedes hacer una petición
Puedes hacer una petición POST (o GET dependiendo del formulario) utilizando el cliente HttpClient
Aquí hay un ejemplo:
Invocación por protocolo de un aplicacion
Que tal, disculpen necesito saber como llamar o ejecutar a un aplicación(Programa) desde la web ?
agradezco de antemano su respuesta.
Más detalles...
Quizás si proporcionaras más detalles, se te podría ayudar... ¿Se trata de un servicio SOAP, servicio REST, servlet, CORBA... etc.?
~~~
Invocar aplicacion local desde la web con URI
Gracias por responder,
soy nuevo en estos temas del desarrollo web, lo que quiero realizar es ejecutar un programa que un cliente instale previamente en su maquina, (ya sea .exe o .jar), pero ejecutarlo desde una aplicación web(mediante javascript,jquery...etc) que esta alojada en mi servidor de aplicaciones.
Según he buscado esto es posible mediante la invocación por protocolo usando URI, esto me permitiría hasta enviarle parámetros a mi aplicación par ser ejecutada.
Pueden ver la explicación en este enlace.
Espero su gentil respuesta.
Puedes usar
Puedes usar esto
Soy nuevo en programacion web
Hola soy nuevo en programacion Java,estrucure un proyecto ear,con los proyectos jpa,ejb,web,.
pero cuando hago el formulario
--
este el codigo
//
lleno el formulario y me sale :
Objetivo inalcanzable , identificador "usuarioBean" resulto a nulo.
alguien que me pueda ayudar
Gracias
Quizás...
@wlady Quizás la solución a tu problema se encuentre aquí:
programa automatizado que vaya a la página de la bolsa de valore
suena interensante, me pregunto si lo lograste!