Bonjour à tous,
Pour un projet d'automatisation de référencement de moteurs de recherche qui doit être fait uniquement en .BAT :
Je souhaite extraire des attributs à partir de ce code html suivant :
Je sais que les chaines à récupérer se situent systématiquement entre les chaines suivantes : #<a href="# et #" target="#
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <html> <head><title>Moteurs</title></head> <body> <div><a href="http://google.com" target="_blank">Google</a> - <a href="http://yahoo.fr" target="_blank">yahoo</a></div> <div><a href="http://www.seek.fr/" target="_blank">Seek</a> - <a href="https://ixquick.com/fra/" target="_blank">Ixquick</a></div> </body> </html>
L'idée est d'avoir en sortie un fichier contenant :
J'ai essayé beaucoup de choses dont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 http://google.com http://yahoo.fr http://www.seek.fr/ https://ixquick.com/fra/
for /f (Le problème est que le délimiteur ne peut etre une chaine mais un caractère unique et qu'il faut connaitre le nombre d'occurrences max par ligne)
findstr /C (Me renvoi les lignes complètes contenant une chaine et reste pénible à encapsuler dans une boucle for)
J'ai par contre plus de mal avec les expression régulières mais ca pourrait etre sans doute une solution.
Pour information, j'ai demandé à l'ami google qui me fait un peu tourner en rond et j'ai bien fouillé ce forum (assez dense il faut l'avouer) (je retombe toujours sur des exemples sur un séparateur avec caractère unique.)
Je sais que je ne suis pas loin de la solution mais je n'y parviens pas.
Connaissez vous une commande ou une syntaxe de ces commandes permettant de faire cela simplement.
Par exemple, connaitre les positions des occurrences et leur longueur (pour pouvoir ensuite les extraire)
Je préfère dans un premier temps ne pas poster trop de code pour ne pas orienter vos propositions vers ce que j'aurais déjà testé en vain car je ne suis pas certain d'avoir pris la bonne direction.
Voici quand même une base minimale de réflexion :
Merci d'avance pour vos propositions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @echo off set sep1=" href=" set sep2=" target=" set file = %~dp0Moteur.htm set sortie = = %~dp0resultat.txt REM findstr /C:%sep1% %file% >>%sortie% REM me retourne les lignes contenant au moins une fois la première chaine 'séparatrice' (sep1) REM for /f %%i in (%file%) do echo %%i>>%sortie% REM me retourne les premiers caractères jusqu'au premier separateur 'espace'
Partager