Récupérer tous les liens d'un site

Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009 - 22 juin 2009 à 10:06
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 28 juin 2009 à 11:32
Bonjour,

Mon but étant de récupérer tous les liens d'un site pour éventuellement faire un sitemap ou autre fichier de ce type.

J'ai commencé par utiliser cURL, et j'ai réussi à stocker le code d'une page dans une variable "String^".

C'est après que cela se complique.
Je ne sais pas vers quelle solution se pencher.
libmxl : pas trouvé de version pour Visual Studio
msxml : pas trouvé des exemples pour faire ce que je veux.

Puis j'ai pensé aux expression régulières pour prendre que ce qui se trouve entre les "href", mais je n'ai pas encore approfondi le sujet.

Quelqu'un peut-il m'éclairer sur la meilleure manière de faire, et comment faire. (exemple : si vous connaissez une autre librairie que cURL etc...)

Merci.

4 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 51
23 juin 2009 à 10:24
Salut

Pour les expressions régulières, tu peux faire un truc comme ça :

"( href=")([a-zA-Z0-9_\\-./\\?\\&=:]+)(")" => (espace, puis href=" puis une lettre min, maj, un chiffre, _, -, ., /, ?, &, =, ou : répétés 1 à n fois, puis ")

Tu récupères ce qui match l'expression régulière, tu remplaces par rien " href="" et le """ à la fin, et tu as ton url.

Je peux pas plus te donner d'infos sur la façon d'utiliser des expressions régulières en C++ en revanche, désolé.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
24 juin 2009 à 15:16
Salut, on est une dizaine de développeurs à s'être penché sur le sujet pour un concours du meilleur code qui fait ça!
Noter la vitesse moyenne d'exécution, et le nombre de lignes de code.
Cliquer sur les noms pour voir le code. Tu devrais trouver ton bonheur.
http://pagesperso-orange.fr/2007/resultats.htm
0
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
24 juin 2009 à 21:02
Merci Krimog, je glisse ta réponse sous le coude pour étudier les regex plus tard.

Katsankat, ça m'a l'air très intéressant. Je vais regarder ça de plus prêt et je reviendrai vers vous.
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
28 juin 2009 à 11:32
Yop,

J'ai déjà fait ce type de programme. Voici ma source :

http://www.cppfrance.com/codes/WIN32-AFFICHE-TOUT-LIENS-PAGE-HTML_42940.aspx

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
0