¿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!!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

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.

Imagen de arterzatij

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í:

1. Verificar que el bean al que estamos llamando en la pagina jsf (.xhtml) sea serializable. ( ).

2. Que el objeto al que estemos llamando tenga getters y setters. Ej.

     

programa automatizado que vaya a la página de la bolsa de valore

suena interensante, me pregunto si lo lograste!