Extracteur de liens (href)
Collez le code source HTML et extrayez chaque lien — toutes les URL href, dédupliquées et listées une par ligne, prêtes à copier ou télécharger.
1 048 vues
0 liens uniques
Aucun lien trouvé.
Comment ça fonctionne
Collez le code source HTML — le résultat d'un « afficher la source », un fichier .html enregistré ou n'importe quel extrait copié — et l'outil confie ce texte à l'analyseur HTML natif du navigateur plutôt qu'à une expression régulière écrite à la main. Cette différence compte plus qu'il n'y paraît. Le HTML du monde réel est désordonné d'une façon qu'un regex naïf gère mal : un attribut peut être entouré de guillemets doubles, simples, ou d'aucun guillemet du tout (href=about.html est techniquement du HTML valide), une balise peut être auto-fermante ou non, et les balises peuvent s'imbriquer sur de nombreux niveaux, s'étendre sur plusieurs lignes, ou se cacher dans des commentaires et des blocs <script> qui contiennent eux-mêmes des chevrons. Un analyseur de qualité navigateur a passé deux décennies à absorber chacun de ces cas particuliers, car il doit rendre n'importe quelle page qu'on lui soumet, aussi mal formé que soit le balisage — construire l'extracteur sur ce même moteur, plutôt que de réinventer la reconnaissance de motifs pour les balises, est ce qui le rend fiable sur un balisage que vous n'avez pas écrit vous-même, comme une page concurrente aspirée ou un vieil export de campagne.
Une fois que l'analyseur a construit un arbre structurel à partir du balisage collé, le href de chaque élément <a> est lu directement comme une propriété de cet élément plutôt que comme du texte brut extrait d'une chaîne de caractères — ce qui contourne d'emblée les subtilités de guillemetage et les chevrons égarés dans des commentaires qui pourraient autrement tromper une recherche par motif. La liste d'URL obtenue est ensuite dédupliquée et écrite une par ligne, prête à être copiée dans le presse-papiers ou téléchargée en fichier texte brut.
Exemple concret : le HTML d'une page contient <a href='/tarifs'>, <a href="https://exemple.com/blog">, et un <a href=mailto:[email protected]> nu, sans aucun guillemet — trois styles de guillemetage différents en trois lignes. Un regex écrit pour reconnaître href="..." manquerait silencieusement les cas à guillemets simples et sans guillemet ; l'analyseur, lui, lit les trois de façon identique, car pour un navigateur ce ne sont que des valeurs d'attribut, indépendamment de la façon — ou non — dont elles sont guillemetées.
Ce qu'il faut savoir
- Les URL relatives comme
/tarifsou../blog/articlesont extraites telles qu'écrites, sans être résolues en adresseshttps://...complètes. Transformer un chemin relatif en URL absolue exige de connaître l'URL de base de la page — normalement l'adresse depuis laquelle le HTML a été récupéré à l'origine, ou une balise<base>explicite — et un extrait collé ne porte ni l'une ni l'autre de lui-même. - L'outil ne récupère jamais d'URL par lui-même ; il ne fait que lire le HTML que vous fournissez. C'est une limite volontaire : auditer les liens sortants d'une page de cette façon ne nécessite aucune requête côté serveur de ce site, seulement le navigateur que vous avez déjà utilisé pour afficher ou enregistrer la source.
- Les liens
mailto:ettel:passent exactement comme n'importe quel autrehref, car l'analyseur ne fait aucune distinction selon le schéma — tout ce qui se trouve dans un attributhrefcompte comme un lien à lister.
Questions fréquentes
L'outil récupère-t-il la page lui-même, ou dois-je fournir le HTML ?
Vous fournissez le HTML — collez le résultat d'un « afficher la source », le contenu d'un fichier .html enregistré, ou tout extrait HTML. L'outil ne récupère jamais d'URL de lui-même (cela nécessiterait une requête serveur que ce site ne fait pas).
Les liens relatifs sont-ils inclus, et sont-ils convertis en URL complètes ?
Les liens relatifs (par ex. /a-propos ou ../page.html) sont extraits exactement tels qu'écrits dans la source, jamais résolus en URL absolues. Les résoudre exigerait de connaître l'URL de base de la page — généralement l'adresse depuis laquelle le HTML a été récupéré — ce qu'un extrait collé ne porte pas de lui-même.
Les liens mailto: et tel: sont-ils inclus ?
Oui — toute valeur href est extraite, quel que soit le schéma, car l'analyseur lit l'attribut lui-même sans filtrer selon le type de lien.
Pourquoi analyser avec le moteur DOM du navigateur plutôt qu'un regex — est-ce que ça change vraiment quelque chose ?
Cela compte surtout sur du HTML réel et désordonné. Un regex réglé pour un seul style de guillemetage (disons, href="..." à guillemets doubles) manquera silencieusement les attributs à guillemets simples ou sans guillemet, les variantes auto-fermantes, et les href enfouis dans un balisage profondément imbriqué ou mal formé. L'analyseur DOM gère tout cela de la même façon qu'un navigateur le ferait en rendant la page, car c'est littéralement le même moteur sous-jacent.
L'outil capture-t-il aussi les liens dans du HTML minifié ou très mal formé ?
Dans la quasi-totalité des cas, oui. Les navigateurs sont conçus pour rendre des pages loin d'être parfaitement formées — balises fermantes manquantes, imbrication incohérente, balisage minifié sur une seule ligne — et cette même tolérance s'applique ici, ce qui est précisément l'avantage face à un regex strict qui attend une entrée propre et bien formatée.
Outils similaires
Signaler un problème
Extracteur de liens (href)
Commentaires
Pas encore de commentaires — soyez le premier à en écrire un !