English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

j'aimerais automatiser le telechargement d'une page web pour traiter le contenu, mais l'acces a cette page se fait après authentification dans le navigateur, je n'arrive pas à y acceder avec mon programme java, je suis obligé de la telecharger manuellement. quelqu'un aurait une idée pour me permettre avec mon programme java de soumettre mes données dans le formulaire pour pouvoir automatiser le telechargement de la page..? en java ou php ou autre...
Merci

2007-02-01 03:01:13 · 4 réponses · demandé par Sophie D 1 dans Informatique et internet Programmation

j'ai un petit programme en java qui traite le contenu d'une page html, j'aimerai modifier mon programme java pour qu'il telecharge directement la page html. mais cette page html que je veux soumettre comme parametre a mon programme est accessible par un navigateur seulement après authentification. je ne sais pas comment mon programme java pourrais envoyer mon identifiant et mon mot de passe pour ensuite telecharger cette page automatiquement.

2007-02-01 03:10:30 · update #1

sachant que l'aspirateur de site ne correspond pas a ce que je veux faire, j'aimerais faire executer mon programme sur une page web, alors du java oui, ou autre, mais pour l'aspirateur ca va etre dur....

2007-02-01 03:12:26 · update #2

4 réponses

Quel que soit le langage, la méthode est la même :
- Simuler une soumission du formulaire de login de ce site,
- Retenir les cookies d'authentification qu'il envoie dans la réponse,
- Envoyer ces cookies avec la requête de la page à télécharger.

Pour simuler la soumission de formulaire, comme déjà dit, il suffit de lire le code source de la page de login, de trouver le formulaire qui soumet login/mot de passe, de retenir l'URL de son paramètre "action" et les noms des différents champs soumis.
On fait exactement la même chose en effectuant une requête HTTP POST à cette URL, envoyant les mêmes champs avec les bonnes valeurs.

En Java, le plus simple est de se servir de la bibliothèque HttpClient ( http://jakarta.apache.org/commons/httpclient/ ) pour faire les requêtes. La bibli s'occupe automatiquement de retenir et retransmettre les cookies comme le ferait un navigateur, ce qui dispense d'un paquet de boulot.

En admettant que l'URL cible du formulaire de login soit http://www.lesite.fr/dologin.htm, avec deux champs textes login et password, puisqu'après on veuille récupérer la page à l'URL http://www.lesite.fr/mapage.htm, ce code devrait suffire :


HttpClient client = new HttpClient();

PostMethod loginRequest = new PostMethod("http://www.lesite.fr/dologin.htm");
loginRequest.addParameter("login", monLogin);
loginRequest.addParameter("password", monMotDePasse);
// réalise l'identification et retient les cookies
client.executeMethod(loginRequest);

loginRequest.releaseConnection();

GetMethod pageRequest = new GetMethod("http://www.lesite.fr/mapage.htm");

// fait la requête
client.executeMethod(pageRequest);

// Récupère la page
InputStream page = pageRequest.getResponseBodyAsStream();

/* lire et traiter la page... */

// libère la connexion
pageRequest.releaseConnection();


--
Il y a plein de doc et d'exemples sur le site d'HttpClient, pour aller plus loin ou faire autrement.

2007-02-01 08:31:50 · answer #1 · answered by thelvindepalanquin 1 · 0 1

Réponses précédentes fausses si les pages du formulaire demandent l'autentification c'est incontournable (.htacces surement), c'est aussi fait pour hein !
Pour l'instant je ne vois que le navigateur virtuel programmé pour répondre à la demande d'autentification. Celle-ci n'est valable que pour le process qui l'a demanfé, le navigateur par exemple.

2007-02-01 09:18:17 · answer #2 · answered by jfp 4 · 0 0

telecharge un aspirateur de site ce sera plus simple....Il y en a de tres bons.

2007-02-01 03:08:55 · answer #3 · answered by Lo0oping05 4 · 0 0

Je crois (je dis bien je crois) comprendre...

Tu peux.
Pour celà tu regarde le code source du site en question.
La balise

va d'indiquer l'url du traitement de la soumission du pseudonyme et du mot de passe.
Tu regarde, suite à cette form les champs .
Tu relève l'attribue qu'ils ont (exemple aura comme attribue : pseudo). Tu fais de même pour tous les champs input.
Si il y a un champs du style , tu relève l'attribue et le value.
Idem pour le champs si il a un attribue (name=).
Enfin, tu résoud l'url finale à partir de ça.

Un exemple :






donnera l'url
http://www.lesite.com/traitement.php?pseudo=ton_pseudo_ici&motdepasse=ton_mot_de_passe&envoi=

Celà peut marcher mais ce n'est pas du tout sûr...
En effet, tout dépend si un script hash les infos avant de les transmettre...
Il me faudrait l'url du site pour que je puisse mieux voir ce que je peux faire ;)

2007-02-01 03:03:22 · answer #4 · answered by paul r 1 · 0 1

fedest.com, questions and answers