Java - tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

 
Vista:
Imágen de perfil de Sandro
Val: 374
Bronce
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Sandro (148 intervenciones) el 30/06/2020 17:57:19
Hola compañero:

tengo un pequeño contrapié, me deseo firmarme a una a pagina por medio de java,

Explico, hay una pagina en cuestión, mi cliente quiere obtener información periódica y almacenarla en base de datos. así como poner ciertos datos en ella, se que se puede hacer por medio de robot, pero esto deja la computadora atrapada, n tiempo. Y el programa truena, si la pagina llegase a tardarse ya sea, por la misma pagina, o por la velocidad, o inclusive por que la computadora este haciendo algo mas.

Hay forma de cachar el respuesta del explorador.

Ya se intento descargando w3m, lynx, links2, links, elinks, esto para hacerlo en modo terminal solamente, la pagina tiene un candado, de que solo ciertas versiones y programas browser puede abrirla.

Ya se intento por medio del comando URLConnection uc = url.openConnection();, pero la pagina tiene usuario y password.

Hay alguna forma de que la pagina se ejecute por medio de java, ejecutando tanto los javascript que tiene la pagina. El forma batch totalmente ya sea con firefox, google browser, safari, o cualquier otro.

gracias compañeros, yo se que la experiencia y el conocimiento es mucho mejor en grupo.

Y por su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Costero (131 intervenciones) el 01/07/2020 02:06:37
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 374
Bronce
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Sandro (148 intervenciones) el 01/07/2020 19:36:26
de lo que he leído se bueno este, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.015
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Billy Joel (586 intervenciones) el 01/07/2020 04:38:08
Me recuerda una vez que necesitaba sacar info de la página [url]www.gsmarena.com[/url]
Si bien con URLConnection funciona, eventualmente me cambié para Apache Http Client que me permite consumir webservices y todo eso.

Entonces básicamente se trata de enviar una petición GET y el contenido (html) lo parseo con JSoup.

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Tom (1620 intervenciones) el 01/07/2020 08:58:24
Yo uso a diario un "browser" javaFx para hacer login en determinada página.

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebEngine.html
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/web/WebView.html

Te da acceso al documento html, y puedes ejecutar los scripts contenidos en la página.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 374
Bronce
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Sandro (148 intervenciones) el 01/07/2020 19:35:05
las estoy verificando gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 374
Bronce
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Sandro (148 intervenciones) el 02/07/2020 16:38:08
seguí esta pagina https://tecadmin.net/setup-selenium-with-chromedriver-on-debian/ y no funciona.
1
2
3
4
5
6
# java chromedSeleniumTest
Starting ChromeDriver 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706) on port 28154
Only local connections are allowed.
jul. 02, 2020 9:32:17 A. M. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Fail


con usuario normal y con sudo y nada

cuando mando el jar ahi se queda pasmado

1
2
3
4
5
6
sudo xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.13.0.jar
[sudo] password for mrco1965:
09:28:47.842 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.13.0', revision: '2f0d292'
09:28:47.845 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
2020-07-02 09:28:47.980:INFO::main: Logging initialized @321ms to org.seleniumhq.jetty9.util.log.StdErrLog
09:28:48.147 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444

gracias, que estaré haciendo mal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Tom (1620 intervenciones) el 02/07/2020 18:19:41
Me temo que la cosa funciona bien, pero la usas mal ... parece más complejo.

http://selftechy.com/2011/08/17/running-selenium-tests-with-chromedriver-on-linux

Con las herramientas del navegador Firefox (o con Selenium por lo poco que conozco) puedes examinar el contenido de una página, todos sus elementos y encontrar los objetos encargados de hacer el login (habrá uno para el nombre de usuario, y otro para el password, seguramente).

Una vez localizados, este simple código java te valdría, sustiyendo, claro, los datos relevantes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import java.net.URISyntaxException;
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker.State;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.util.Duration;
import org.w3c.dom.html.HTMLDocument;
import org.w3c.dom.html.HTMLInputElement;
 
/* */
public class Browse extends Application {
	@Override
	public void start(Stage stg) throws Exception {
		WebView wv = new WebView();
 
		wv.setPrefSize(800, 600);
		stg.setScene(new Scene(wv));
		stg.titleProperty().bind(wv.getEngine().locationProperty());
 
		wv.getEngine().getLoadWorker().stateProperty().addListener((obs, prev, act) -> {
			if(act == State.SUCCEEDED) {
				String surl = wv.getEngine().getLocation();
				System.out.println("Loc: " + surl);
				if(surl.contains("login.target_web.net")) {
					// The document is not complete here
					doLogin(wv.getEngine());
				} else if(surl.contains("interesting_page")) {
					Timeline ti = new Timeline(new KeyFrame(Duration.minutes(15), ae -> wv.getEngine().reload()));
					ti.setCycleCount(Animation.INDEFINITE);
					ti.play();
				}
			}
		});
 
		wv.getEngine().getLoadWorker().exceptionProperty().addListener(new ChangeListener<Throwable>() {
			@Override
			public void changed(ObservableValue<? extends Throwable> ov, Throwable oldException, Throwable exception) {
				System.out.println("Load Exception: " + exception);
			}
		});
		wv.setZoom(0.5);
		stg.show();
		wv.getEngine().load("https://target_web.net/interesting_page");
	}
	/* */
	void doLogin(WebEngine eng) {
		HTMLDocument doc = (HTMLDocument)eng.getDocument();
 
		if((doc != null) && eng.getLocation().contains("login")) {
			HTMLInputElement login = (HTMLInputElement)doc.getElementById("login");
			if(login != null) {
				HTMLInputElement pass = (HTMLInputElement)doc.getElementById("passwd");
				// The button is not found into the form. Use javascript
				if(pass != null) {
					System.out.println("Form loaded");
					login.setValue("login_user");
					pass.setValue("login_password");
					eng.executeScript("document.getElementById('logon-button').click();");
				}
			} else {
				/* retry later */
				Timeline ti = new Timeline(new KeyFrame(Duration.seconds(1), ae -> doLogin(eng)));
				System.out.println("Retrying ...");
				ti.play();
			}
		}
	}
	/* */
	public static void main(String args[]) throws URISyntaxException {
		launch(args);
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Costero (131 intervenciones) el 03/07/2020 04:35:36
Parece que si funciona.

Si seguiste el ejemplo:

1
2
3
4
5
if (driver.getPageSource().contains("I'm Feeling Lucky")) {
    System.out.println("Pass");
} else {
    System.out.println("Fail");
}

Esta imprimiendo 'Fail' por que no encontró en la pagina "I'm Feeling Lucky". To Google es en Español~ol?.

Por ejemplo el Google de Mexico https://www.google.com.mx/?hl=es dice: "Me siento con Suerte".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sandro
Val: 374
Bronce
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

(solucionado)tengo un pequeño contrapie, me deseo firmarme a una a pagina por medio de java

Publicado por Sandro (148 intervenciones) el 04/07/2020 04:08:24
no me fije que el chromedriver, tiene muchas versiones, y debería de estar en común el programa java cuando manda a llamar el driver, con el que esta corriendo, eso era por el error de ejecución.

Gracias ya estoy adecuado, no se firma automática, por es un frame, o un ccs, pero la facilidad que estoy viendo. es que yo me firmo manual, después haber corrido el programa que me abre el explorador y le digo que se espere, con instrucción de java thread.sleep(100).

Y solucionado continua dando clic, solo me falta tomar datos, y poner datos.

gracias

yo sabia que en grupo, compañeros, podíamos solucionarlo

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar