Connection automatique à un site coté serveur

Fermé
AlexKidd - 17 déc. 2009 à 00:26
 AlexKidd - 17 déc. 2009 à 19:46
Bonjour,

Je ne pense pas que mon titre de message soit vraiment clair mais je ne savais pas comment résumer ma demande.

Je m'explique :
Je souhaiterais parser (avec un parseur) une page HTML d'un site Internet afin d'y extraire des résultats et les stocker dans ma base de données pour notamment réaliser des statistiques derrières ou faire des recherches que le site ne permet pas.
J'essaie actuellement de faire cela avec un parseur DOM en PHP que j'ai trouvé sur Internet. Ce parseur possède une méthode pour récupérer dans une variable, la source HTML d'une page.

Mon problème, c'est que cette page n'est accessible qu'une fois qu'un utilisateur est connecté au site. Donc la source que je récupère avec mon parseur est celle de la page d'accueil (car le site en question redirige sur la page d'accueil lorsque l'utilisateur n'est pas connecté).

Je cherche alors un moyen de connecter via mon script PHP à ce site afin de pouvoir parser la page désiré derrière.

J'ai essayé en envoyant une requête AJAX (avec Prototype) au contrôleur de login en utilisant la méthode POST et en passant en variable mon login et mon mot de passe. Ensuite je tente de parser la page que je souhaite mais il (le parseur) me récupère quand même la page d'accueil.

Est-ce qu'il peut exister une solution à mon problème ? Si ou, pouvez vous me dire comment faire en me donnant quelques explications et/ou indications s'il vous plait ?

Si possible je souhaiterai une solution en PHP, ou éventuellement Java (si PHP impossible).

Je vous remercie d'avance pour vos réponses.

Cordialement,
AlexKidd
A voir également:

1 réponse

Bonjour,

J'ai réussi à trouver ceci : http://hc.apache.org/index.html

Mais je trouve ce composant compliqué.
Alors si certain d'entre vous connaissent ou les comprennent les possibilités de ce composant, pouvez vous me dire si je peux arriver à faire ce que je désire (voir premier message) avec ?
Et si oui, pouvez vous me dire que dois-je utiliser ?

J'ai déjà essayé ceci mais ça ne marche pas :
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("name", "monLogin"));
formparams.add(new BasicNameValuePair("password", "monPassword"));
UrlEncodedFormEntity entity = null;
entity = new UrlEncodedFormEntity(formparams, "UTF-8");

HttpPost httppost = new HttpPost("http://actionDuFormulaireDeLogin");
httppost.setEntity(entity);

HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);

URL eRep = new URL("http://monUrlAParser");
URLConnection yc = eRep.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
      System.out.println(inputLine);
}
in.close();


Je vous remercie toujours d'avance car je galère vraiment pour trouver une solution.

Bien cordialement.
0