Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2703 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Convertir une url relative en url absolue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Convertir une url relative en url absolue

n°1982639
nisalon_ca​je
Posté le 09-04-2010 à 17:02:06  profilanswer
 

Bonjour,
 
J'ai une page internet que je scanne et j'obtiens par conséquent les liens qu'elle comporte via d'autres pages.
 
Certains de ces liens sont relatifs.
 
y aurait-il un moyen de les convertir en liens absolus, sachant que je dispose bien entendu de l'adresse de la page sur laquelle j'ai trouvé le lien ?
 
Merci d'avance :)
 
nc
 
PS : google ne m'a pas été d'une grande aide :(

mood
Publicité
Posté le 09-04-2010 à 17:02:06  profilanswer
 

n°1982650
ptitchep
Posté le 09-04-2010 à 17:21:25  profilanswer
 

Salut

 

Comment sont stockés tes liens, quel OS utilises-tu?


Message édité par ptitchep le 09-04-2010 à 17:22:05

---------------
deluser --remove-home ptitchep
n°1982666
nisalon_ca​je
Posté le 09-04-2010 à 18:01:44  profilanswer
 

alors mes liens sont dans des "string", et j'utilise linux


---------------
http://nisalon.labrute.com/
n°1982713
ptitchep
Posté le 09-04-2010 à 23:22:25  profilanswer
 

Des lien relatifs c'est ça:
 
lien "père" :
http://adresse.lalala.pouet.com
 
lien "relatif":
images/carotte.jpg
 
?
 
Si c'est le cas et que tu as
std::string pere, relatif, absolu;
 
tu dois pouvoir faire
absolu = pere+ "/" + relatif;
 
et tu obtiens
absolu == "http://adresse.lalala.pouet.com/images/carotte.jpg
 
Si tu as besoin repérer des sous chaines dans tes strings, tu as des méthodes comme find, substr. etc...
http://www.cplusplus.com/reference/string/string/
 
Pour décomposer ta chaîne, par exemple chaque partie entre deux slash /, boost::tokenizer je pense.


---------------
deluser --remove-home ptitchep
n°1982714
nisalon_ca​je
Posté le 09-04-2010 à 23:34:35  profilanswer
 

ca semble simple effectivement, mais ca l'est beaucoup moins
 
Imagine par exemple que j'ai l'adresse suivante :
?page=http://www.google.fr#paragraphe1 lorsque j'appelle la page www.monsite.com/undossier
 
tu vois bien que ta méthode ne donne pas le bon lien relatif


---------------
http://nisalon.labrute.com/
n°1982736
esox_ch
Posté le 10-04-2010 à 09:04:34  profilanswer
 

Heu il y a quoi qui ne vas pas dans ce que ptitchep t'as donné?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982744
nisalon_ca​je
Posté le 10-04-2010 à 10:32:19  profilanswer
 

pardon, ce que tu avais dit était effectivement correct, j'avais mal lu
 
Le problème est surtout de récupérer le dossier père :
par exemple il semble difficile de se baser sur un / du fait que lorsque l'on appelle la page www.monsite.com/undossier alors le dossier père est www.monsite.com/undossier  
De même il peut être difficile de se baser sur les points, parce que l'on pourrait avoir
www.monsite.com/un.dossier/
 
Donc le problème revient à trouver une méthode efficace pour trouver le dossier père


---------------
http://nisalon.labrute.com/
n°1982752
esox_ch
Posté le 10-04-2010 à 11:39:33  profilanswer
 

Si t'as un truc genre
 
www.monsite/undossier/page.php?....
C'est facile, tu te repères par rapport au dernier /


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982755
nisalon_ca​je
Posté le 10-04-2010 à 11:47:03  profilanswer
 

et si j'ai un truc du genre www.monsite.com/undossier ?


---------------
http://nisalon.labrute.com/
n°1982759
esox_ch
Posté le 10-04-2010 à 12:04:57  profilanswer
 

Non mais attend,  tu veux bien nous noter les URL que tu risques de rencontrer, et le résultat que tu voudrais obtenir pour chaque URL?
Parce que j'ai l'impression que c'est pas totalement clair pour toi (ou du moins, c'est l'impression que tu donnes)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 10-04-2010 à 12:04:57  profilanswer
 

n°1982763
nisalon_ca​je
Posté le 10-04-2010 à 12:19:51  profilanswer
 

www.monsite.com/undossier -> dossier parent = www.monsite.com/undossier/
 
www.monsite.com/undossier/ -> dossier parent = www.monsite.com/undossier/
 
www.monsite.com/mapage.htm -> dossier parent = www.monsite.com/
 
www.monsite.com/un.dossier -> dossier parent = www.monsite.com/un.dossier/
 
www.monsite.com/un.dossier?page=1 -> dossier parent = www.monsite.com/un.dossier/
...


Message édité par nisalon_caje le 10-04-2010 à 12:22:21

---------------
http://nisalon.labrute.com/
n°1982772
ptitchep
Posté le 10-04-2010 à 13:29:56  profilanswer
 

C'est loin d'être génial vu que c'est fait en 2-2 mais ça trouve le dossier parent de tes exemples:

Code :
  1. #include <iostream>
  2. #include <string>
  3. std::string trouverParent(const std::string& chemin)
  4. {
  5.         size_t pos;
  6.         if (chemin.find_last_of('/') == chemin.size()-1)
  7.                 return chemin;
  8.         pos = chemin.find_first_of('?');
  9.         if (pos != std::string::npos)
  10.                 return chemin.substr(0,pos)+"/";
  11.         pos = chemin.find(".htm" );
  12.         if (pos != std::string::npos)
  13.         {
  14.                 size_t posslash = chemin.find_last_of("/", pos);
  15.                 return chemin.substr(0,posslash+1);
  16.         }
  17.         return chemin+"/";
  18. }
  19. int main ()
  20. {
  21.         std::cerr<<trouverParent("www.monsite.com/undossier" )<<std::endl;
  22.         std::cerr<<trouverParent("www.monsite.com/undossier/" )<<std::endl;
  23.         std::cerr<<trouverParent("www.monsite.com/lalala/mapage.htm" )<<std::endl;
  24.         std::cerr<<trouverParent("www.monsite.com/un.dossier" )<<std::endl;
  25.         std::cerr<<trouverParent("www.monsite.com/un.dossier?page=1" )<<std::endl;
  26.         return 0;
  27. }


---------------
deluser --remove-home ptitchep
n°1982773
esox_ch
Posté le 10-04-2010 à 13:30:08  profilanswer
 

mmm...
Là comme ça, je te dirai qu'à moins que tu fasses une liste des exentions de fichier, tu ne pourras pas..

 

Ne serait-ce que pour la raison que
www.monsite.com/un.dossier?page=1
Pourrait tout aussi bien être équivalent à

 

www.monsite.com/index.php?page=1 , pour lequel tu t'attendrais plutôt à avoir www.monsite.com/ comme dossier parent.

 

Edit: Oui mais ptitchep, tu "triches" parce que tu cherches .htm dans le path. Donc comme je l'ai dit : Si tu as une liste des extensions (.php, .xml, .jpg ,...) alors ça joue, sinon ça ne marchera pas

Message cité 1 fois
Message édité par esox_ch le 10-04-2010 à 13:32:08

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1982780
ptitchep
Posté le 10-04-2010 à 14:19:49  profilanswer
 

esox_ch a écrit :


Edit: Oui mais ptitchep, tu "triches" parce que tu cherches .htm dans le path. Donc comme je l'ai dit : Si tu as une liste des extensions (.php, .xml, .jpg ,...) alors ça joue, sinon ça ne marchera pas


Oui en effet, j'ai fait ça vite fait. On peut en effet faire une liste d'extensions, un iterateur dessus etc. De toute façon mon exemple ne marche que pour 1% des cas mais je ne suis pas là pour faire son travail. Je donne un exemple.


---------------
deluser --remove-home ptitchep
n°1982781
esox_ch
Posté le 10-04-2010 à 14:28:16  profilanswer
 

Tout à fait, je répondais juste déjà à la question :
Esox, pourquoi est-ce que tu es si défaitiste que ça, alors que ptitchep a résolu le problème :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Convertir une url relative en url absolue

 

Sujets relatifs
Convertir SHARP en VBConvertir VB en HTML ?!
Convertir inline CSS en règles ? Converts inline style into CSS rulesConvertir des formules Excel dans un langage algorithmique
[ACCESS] Convertir un nombre au format HH:MMConvertir mot de passe en MD5
[Algo]Convertir nombres en lettreconvertir une chaine de char en entier
Convertir un .doc en .pdfComment convertir du code html en texte lisible
Plus de sujets relatifs à : Convertir une url relative en url absolue


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR