[java] recuperation liens d'une page Web
Fermé
karine
-
2 juin 2005 à 15:23
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 21 mars 2008 à 17:44
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 21 mars 2008 à 17:44
A voir également:
- [java] recuperation liens d'une page Web
- Supprimer une page word - Guide
- Traduire une page web - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Web office - Guide
13 réponses
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 15:43
2 juin 2005 à 15:43
voici les liens relatifs et leur correspondance en lien absolu :
"/dossier/page.html" : on revient à la racine du site
"dossier/page.html" : on continue dans le même répertoire
"./dossier/page.html" : on continue dans le même répertoire
"../dossier/page.html" : on remonte d'1 niveau
"../../dossier/page.html" : on remonte de 2 niveaux
"/dossier/page.html" : on revient à la racine du site
"dossier/page.html" : on continue dans le même répertoire
"./dossier/page.html" : on continue dans le même répertoire
"../dossier/page.html" : on remonte d'1 niveau
"../../dossier/page.html" : on remonte de 2 niveaux
Merci jebok !!
Décidément, tu es incollable sur plein de trucs !
Là j'y vois beaucoup plus clair, ah les mystères de l'informatique ! ;-)
Décidément, tu es incollable sur plein de trucs !
Là j'y vois beaucoup plus clair, ah les mystères de l'informatique ! ;-)
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 15:59
2 juin 2005 à 15:59
salut,
en fait je viens de réaliser un aspirateur de pages web en Java donc évidemment tout ca est très frais pour moi...
Si t'as d'autres problèmes, don't hesitate ! ;-)
bye
en fait je viens de réaliser un aspirateur de pages web en Java donc évidemment tout ca est très frais pour moi...
Si t'as d'autres problèmes, don't hesitate ! ;-)
bye
Et quand tu parles de la racine du site, est-ce que c'est le host, ou est-ce que c'est le début de l'url avant un /
Du genre www.commentcamarche.net/forum/, sa racine c'est www.commentcamarche.net
Est-ce que ça marche à tous les coups ?
Du genre www.commentcamarche.net/forum/, sa racine c'est www.commentcamarche.net
Est-ce que ça marche à tous les coups ?
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 16:14
2 juin 2005 à 16:14
Dans ton exemple, la racine c'est www.commentcamarche.net
Normalement ca marche à tous les coups !
Ici tu auras quelques explications (peut être + claires ?) mais en gros c'est la même chose que ce que je t'ai dit :
http://www.lecourshtml.com/html/liens1.php3#locaux
Normalement ca marche à tous les coups !
Ici tu auras quelques explications (peut être + claires ?) mais en gros c'est la même chose que ce que je t'ai dit :
http://www.lecourshtml.com/html/liens1.php3#locaux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je me pose encore une question ...
Si j'ai un lien "dossier.html"
Et une url webby.free.fr/html/images.html
Le lien que je dois obtenir est webby.free.fr/html/dossier.html
Mais comment faire ?
Disons que je remonte d'un cran et que j'insere /dossier.html
Mais si j'ai une url comme ça : webby.free.fr/html
Je suis dans un dossier, est-ce que le résultat est webby.free.fr/html/dossier.html ou webby.free.fr/dossier.html ?
En fait tout ça n'est pas très clair ...
merci d'avance !
Si j'ai un lien "dossier.html"
Et une url webby.free.fr/html/images.html
Le lien que je dois obtenir est webby.free.fr/html/dossier.html
Mais comment faire ?
Disons que je remonte d'un cran et que j'insere /dossier.html
Mais si j'ai une url comme ça : webby.free.fr/html
Je suis dans un dossier, est-ce que le résultat est webby.free.fr/html/dossier.html ou webby.free.fr/dossier.html ?
En fait tout ça n'est pas très clair ...
merci d'avance !
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 16:42
2 juin 2005 à 16:42
je vais essayer de répondre à ta question. si ce n'est pas clair, n'hésite pas à me demander.
si tu es sur la page webby.free.fr/html/images.html
tu te trouves en réalité dans le dossier webby.free.fr/html
Tu n'as donc pas besoin de remonter d'un cran car remonter d'un cran = remonter d'un dossier.
Si tu veux obtenir le lien webby.free.fr/html/dossier.html
il te suffit d'écrire :
par contre, si tu écris ca :
Tu remontes effectivement d'un cran (et donc d'un dossier) et tu te retrouves à la page webby.free.fr/dossier.html
J'espère avoir été clair.
si tu es sur la page webby.free.fr/html/images.html
tu te trouves en réalité dans le dossier webby.free.fr/html
Tu n'as donc pas besoin de remonter d'un cran car remonter d'un cran = remonter d'un dossier.
Si tu veux obtenir le lien webby.free.fr/html/dossier.html
il te suffit d'écrire :
<a href="dossier.html"> ... <\a>
par contre, si tu écris ca :
<a href="../dossier.html"> ... <\a>
Tu remontes effectivement d'un cran (et donc d'un dossier) et tu te retrouves à la page webby.free.fr/dossier.html
J'espère avoir été clair.
C'est très clair !
Mais techniquement, si j'ai une url, comment je détermine le dossier courant ?
Par exemple, www.commentcamarche.net/forum/affich-1568051-[java]-recuperation-liens-d-une-page-Web#ecrire
comment je fais pour savoir que affich-1568051-[java]-recuperation-liens-d-une-page-Web#ecrire
est un repertoire ou non ?
Mais techniquement, si j'ai une url, comment je détermine le dossier courant ?
Par exemple, www.commentcamarche.net/forum/affich-1568051-[java]-recuperation-liens-d-une-page-Web#ecrire
comment je fais pour savoir que affich-1568051-[java]-recuperation-liens-d-une-page-Web#ecrire
est un repertoire ou non ?
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 17:19
2 juin 2005 à 17:19
normalement une url s'écrit soit comme ca :
http://www.site.com/repertoire/page.html
soit comme ca :
http://www.site.com/repertoire
Dans le 2ème cas, le navigateur ouvre la page nommée index.html
Remarque les pages peuvent s'appeler *.html ou *.php ou ...
En Java, pour savoir à quel type d'url tu as affaire, utilise la méthode suivante :
ca te renvoie le type MIME du fichier vers lequel pointe l'URL.
Pour plus d'infos sur le type MIME des fichiers :
http://www.commentcamarche.net/systemes/mime.php3
http://www.site.com/repertoire/page.html
soit comme ca :
http://www.site.com/repertoire
Dans le 2ème cas, le navigateur ouvre la page nommée index.html
Remarque les pages peuvent s'appeler *.html ou *.php ou ...
En Java, pour savoir à quel type d'url tu as affaire, utilise la méthode suivante :
import java.net.*; URL lien = new URL("http://www.monsite.com/..."); String typeMIME = lien.openConnection().getContentType();
ca te renvoie le type MIME du fichier vers lequel pointe l'URL.
Pour plus d'infos sur le type MIME des fichiers :
http://www.commentcamarche.net/systemes/mime.php3
Et si le Content-Type est vide, ça veut dire que l'url se termine par un repertoire ?
Si la réponse est oui, je crois que j'ai compris, sinon c'est pas gagné ;-)
Si la réponse est oui, je crois que j'ai compris, sinon c'est pas gagné ;-)
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 17:46
2 juin 2005 à 17:46
En fait, je viens de tester et si tu lui entres une url du type http://www.site.com/repertoire
il renvoie le type MIME suivant : text/html
A vrai dire je ne sais pas vraiment pourquoi...
il renvoie le type MIME suivant : text/html
A vrai dire je ne sais pas vraiment pourquoi...
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 17:27
2 juin 2005 à 17:27
Et si le Content-Type est vide, ça veut dire que l'url se termine par un repertoire ?
je vais vérifier ca...
je vais vérifier ca...
jebok
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
51
2 juin 2005 à 17:52
2 juin 2005 à 17:52
Si tu veux, j'ai écrit un bout de code qui transforme un lien relatif en lien absolu (j'en ai eu besoin pour mon aspirateur de pages web).
Mais pour le faire, j'ai vraiment fait du bricolage...
Je te laisse découvrir ça (si tu trouves quelque chose de mieux n'hésite pas !) :
-------------------- début -----------------------
-------------------- fin ------------------------
Mais pour le faire, j'ai vraiment fait du bricolage...
Je te laisse découvrir ça (si tu trouves quelque chose de mieux n'hésite pas !) :
-------------------- début -----------------------
/** * Méthode qui transforme un lien relatif en lien absolu * * @param str lien relatif * @return lien absolu */ private String transforme(String str){ /** on vérifie si le lien commence par http:// auquel cas * c'est un lien absolu */ Pattern motif1 = Pattern.compile("^http://", Pattern.CASE_INSENSITIVE); Matcher moteur1 = motif1.matcher(str); boolean ok1 = moteur1.find(); /** on décompose le lien selon les slash (/) */ String[] separe = lien_.toString().split("/"); /** longueur du tableau précédent */ int n = separe.length; /** on récupère le nom du fichier pour savoir jusqu'où remonter */ String chemin = lien_.getFile(); String[] name = chemin.split("/"); if (name.length < (n-2) ) n--; else{ String[] separe2 = name[n-2-1].split("\\."); if (separe2.length >1) n--; } /** on cherche si on doit revenir à la racine du site */ Pattern motifRacine = Pattern.compile("^/"); Matcher moteurRacine = motifRacine.matcher(str); boolean okRacine = moteurRacine.find(); /** on cherche si c'est un lien relatif introduit par: ./ */ Pattern motifRelatif = Pattern.compile("^\\./"); Matcher moteurRelatif = motifRelatif.matcher(str); boolean okRelatif = moteurRelatif.find(); if (okRelatif) {str = str.substring(2);} /** on cherche si on doit remonter aux répertoires parents * (introduit par ../) */ Pattern motifParent = Pattern.compile("^\\.\\./"); Matcher moteurParent = motifParent.matcher(str); /** dans ce cas on traite le lien */ while (moteurParent.find()){ /** on enlève les 3 premiers caractères (../) */ str = str.substring(3); /** on recommence pour voir s'il faut encore remonter * pour cela on modifie le moteur de recherche */ moteurParent = motifParent.matcher(str); n--; } /** lien absolu qui sera retourné à la fin */ String lienAbs; /** on commence à traiter le lien */ /** si lien est déjà absolu, on ne fait rien */ if (!ok1){ /** si l'on doit revenir à la racine du site c'est simple */ if (okRacine) lienAbs = "http://"+lien_.getHost().toString()+str; /** sinon */ else{ String s=""; for (int i=0; i<n; i++){ s = s+separe[i]+"/"; } lienAbs = s+str; } } /** si le lien est déjà absolu on ne le modifie pas */ else {lienAbs = str;} /** on renvoie le lien absolu */ return lienAbs; }
-------------------- fin ------------------------
Merci beaucoup jebok !
Je vais regarder ça en détail ...
Si j'améliore ton code, je te l'enverrai (si j'y arrive ;-) )
A+
Je vais regarder ça en détail ...
Si j'améliore ton code, je te l'enverrai (si j'y arrive ;-) )
A+
J'ai téléchargé une carte postale d'un site.Par contre,je ne sais pas comment l'insérer à mes contacts,ni ou inscrire le lien.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
21 mars 2008 à 17:44
21 mars 2008 à 17:44
salut,
commence par la charte du site, tu y trouveras des conseils pour savoir où et comment poser tes questions.
sinon tu n'auras jamais de réponses !
-;o)
à plus !
commence par la charte du site, tu y trouveras des conseils pour savoir où et comment poser tes questions.
sinon tu n'auras jamais de réponses !
-;o)
à plus !