Se connecter à Spotify avec HTMLUnit (ou autre)

Fermé
themagicvic Messages postés 240 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 31 juillet 2019 - 9 sept. 2017 à 19:18
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 10 sept. 2017 à 16:40
Bonjour,

Je veux créer un petit programme qui puisse se connecter à https://accounts.spotify.com/fr/login en utilisant HTMLUnit (si jamais vous avez une autre méthode qui marche sans HTMLUnit, je suis aussi preneur ^^)

voici mon code

import java.io.IOException;
import java.net.MalformedURLException;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
import com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine;

public class MainCheck {

public static void main(String args[]){
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page1;
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setDownloadImages(true);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);

webClient.setJavaScriptEngine(new JavaScriptEngine(webClient));

try {

page1 = webClient.getPage("https://accounts.spotify.com/login");
System.out.println(page1.asXml());
final HtmlForm form = (HtmlForm) page1.getElementById("$parent.accounts");
System.out.println(form);
final HtmlSubmitInput button = (HtmlSubmitInput) form.getInputsByValue("SE CONNECTER").get(0);
final HtmlTextInput textField = form.getInputByName("email");
textField.setValueAttribute("jon@jon.com");
final HtmlPasswordInput textField2 = form.getInputByName("pass");
textField2.setValueAttribute("ahhhh");
try {
final HtmlPage page2 = button.click();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FailingHttpStatusCodeException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}


Donc j'aimerais quelque chose qui:
-ouvre le lien "https://accounts.spotify.com/fr/login"
-rentre un e-mail dans "Nom d'utilisateur ou adresse e-mail"
-rentre un mot de passe dans "Mot de passe"
-clique sur le bouton "SE CONNECTER"

J'ai cherché sur pas mal de forums mais aucunes réponses à mes questions :/
Aussi j'ai remarqué que quand je met System.out.println(page1.asXml()); (pour voir le code source de la page), ça me met qu'un tout petit bout de code, normal ?

Pourriez-vous m'aider ?

Merci d'avance,
Cordialement, themagicvic.
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
10 sept. 2017 à 16:40
Bonjour,

Si tu n'as qu'un petit bout de code HTML c'est parce que le site est écrit en Angular donc tout est dans des fichiers JavaScript...

Quant à l'automatisation de l'accès à Spotify je t'invite à lire leurs conditions générales d’utilisation. En particulier le chapitre 8.
https://www.spotify.com/fr/legal/end-user-agreement/

CommentCaMarche ne t'aidera donc pas à faire ce que tu veux.
0