Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Exporter marque page Firefox HTML


Pang

Messages recommandés

Bonjour,

 

J'exporte mes marques pages en HTML afin de pouvoir les consulter en ligne sur ma page perso.

 

Mais, lorsque je regarde le code de cette page, il y a un tas d'éléments qui ne servent à rien, et qui alourdissent inutilement la page :

 

<DT><A HREF="http://www.phreak.org/radio/mods/index.shtml" ADD_DATE="1153209691" LAST_CHARSET="ISO-8859-1" ID="rdf:#$uewQr2">Digital Information Society; Radio and Scanner Modifications</A>

Dans cette exemple, tout ce qui est en gras est inutile.

Cet exemple est gentil car souvent c'est bien plus long, c'est à dire, parfois plus de 20 lignes de 'code' abscon :

 

La première fois, j'ai édité (notepad) le code afin de supprimer les choses inutiles... mais c'est laborieux car j'ai beaucoup de marques pages.

(au dernier export de marque page, la page HTML resultante pesait 470 Ko, et après édition.... 62 Ko !!!! :P )

 

- Hormis l'URL, la date et le type de charset pour la page, que signifie toutes les informations après l'url ?

- Ai-je un moyen de 'filtrer' le contenu du code pour éliminer tous ces trucs et ne garder que l'essentiel ?

 

Merci.

Modifié par Pang
Lien vers le commentaire
Partager sur d’autres sites

  • Modérateurs

Bah, tu peux éliminer les « scories » grâce à une analyse sémantique de tes lignes. Pour cela, un langage (ou tout simplement un éditeur de texte) qui sait mettre en œuvre des expressions régulières (ou rationnelles) peut t'aider à résoudre facilement la question. Tu trouveras ci-dessous un exemple en PERL (où j'ai initialisé la variable $chaine pour la traiter, mais tu peux faire la même chose avec une boucle de lecture de ton fichier)...

 

$chaine='<DT><A HREF="http://www.phreak.org/radio/mods/index.shtml" ADD_DATE="1153209691" LAST_CHARSET="ISO-8859-1" ID="rdf:#$uewQr2">Digital Information Society; Radio and Scanner Modifications</A>';
$chaine=~s|(<A HREF=".*?").*?>|$1>|;

Résultat (les passages à la ligne viennent uniquement du fait que le forum ne peut pas afficher les « lignes » sur une seule ligne, elles sont trop longues).

 

<DT><A HREF="http://www.phreak.org/radio/mods/index.shtml">Digital Information Society; Radio and Scanner Modifications</A>

Lien vers le commentaire
Partager sur d’autres sites

Oui cela semble parfait. Hélas, le code c'est pas mon truc...

 

tu peux faire la même chose avec une boucle de lecture de ton fichier

Je ne sais pas faire ça.

Lien vers le commentaire
Partager sur d’autres sites

La même chose avec sed, et ça te fait tout ton fichier en une passe ;-)

Au passage, les infos que tu filtres sont celles qui sont utilisées par le gestionnaire de bookmarks de Firefox pour savoir quand tu as créé le bookmark, quelle est sa favicon, où il est classé, la dernière visite, etc.

 

Ca doit donner quelque chose comme ça :

sed -e 's/<A[^>]*HREF="\([^\"]*\)"[^>]*>/<A HREF="\1">/' bookmarks.html

(à rediriger dans un fichier, bien entendu) ;-)

 

-- edit --

Testé et validé sous Windows avec la version de sed incluse dans les UnxUtils.

Testé et validé sous Linux.

Il reste encore des attributs inutiles sur les balises <h3>...

Lien vers le commentaire
Partager sur d’autres sites

Ok j'ai téléchargé les outils.

 

(à rediriger dans un fichier, bien entendu) :P

Désolé, je ne comprends pas.

Modifié par Pang
Lien vers le commentaire
Partager sur d’autres sites

La commande, telle qu'elle est écrite ci-dessus, va te recracher le contenu (modifié) du fichier sur la "sortie standard" (i.e. dans la console). "Rediriger" ça signifie que tu ajoutes un > et un nom de fichier à la suite de la commande pour que le flux de "sortie standard" aille directement dans un fichier portant le nom spécifié.

 

Pour faire simple (et te macher le travail) la commande suivante va te créer le fichier bookmarks_short.html :

sed -e 's/<A[^>]*HREF="\([^\"]*\)"[^>]*>/<A HREF="\1">/' bookmarks.html > bookmarks_short.html

Lien vers le commentaire
Partager sur d’autres sites

Je suis dans la console c:\unix\usr\local\wbin >

Dans ce répertoire il y a sed, ainsi que mon fichier html (bookmarks.html)

 

Pour faire simple (et te macher le travail) la commande suivante va te créer le fichier bookmarks_short.html :

La commande suivante me renvoie :

 

Syntaxe du nom de fichier, de répertoire ou de volume incorrecte.

 

:P

Lien vers le commentaire
Partager sur d’autres sites

Erf...

J'avoue, j'ai utilisé zsh (toujours dans les unxutils) pour lancer cette commande, pas cmd.exe ...

 

-- edit --

Ce *%$@# de cmd.exe s'étrangle avec les guillemets présents dans les paramètres, en gros si tu veux faire marcher sed avec cmd.exe il faut lancer "sed -f script bookmarks.html > bookmarks_short.html" avec un fichier script qui contient ceci :

s/<A[^>]*HREF="\([^\"]*\)"[^>]*>/<A HREF="\1">/

Lien vers le commentaire
Partager sur d’autres sites

:P , comme ça oui ça le fait !

 

j'ai utilisé zsh

Il y a effectivement cet exécutable sh.exe dans le répertoire bin.

Lorsque je le lance j'ai une console :

x#

...

mais pas très bavarde cette console...(quelques commandes unix fonctionnent)

Il y a moyen de lancer la ligne de commande dans cette console et à l'emplacement adéquat ? (donc sans passer par un fichier script ?)

 

Il reste encore des attributs inutiles sur les balises <h3>...

Exact.

je vais bouquiner ça : http://www.prod-info.fr/Unix/Unix-Initiation-a-Sed.html

et on verra ensuite si j'arrive à traiter cette balise.

 

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Oui, le sh.exe qui se trouve dans cette archive est une vieille version de zsh ("vieille" mais parfaitement fonctionnelle !). Le prompt par défaut est très moche mais il suffit d'avoir un fichier "zshrc" dans ton répertoire home ("c:\Documents and settings\ton username\") et tu peux configurer tout ce que tu veux comme tu le ferais avec un fichier .zshrc sous Unix.

Le premier truc à faire étant évidemment d'ajouter le répertoire des unxutils dans le PATH ;-)

 

Il y a moyen de lancer la ligne de commande dans cette console et à l'emplacement adéquat ?
Oui.
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...