Une fois que l'on a le texte du fichier Html à purger, il suffit d'appliquer les deux expressions régulières suivantes :

  • '(>\s*)[^<]+(\s*<)' repère tout ce qui traîne entre un '>' à gauche et un '<' à droite
  • '\s+title="[^"]+"' repère tous les attributs title ainsi que leur valeur

NB: on suppose ici que le code Html est de type XHtml valide, c'est-à-dire que les attributs sont en minuscules et leur valeur est encadrée de guillemets.

Le code Python résultant, purge-html.py, est un peu plus long bien sûr, puisqu'il faut afficher un texte d'aide, vérifier l'existence du fichier puis le charger :

#!/usr/bin/python
##########
# author : JM. Philippe
#
# Public domain
##########

import sys, os, re, string

# print some help text
if len(sys.argv) != 2 or sys.argv[1] in ['-h', '--help']:
	print """purge-html.py - removes text inside Html tags and title attributes
usage:
 	python purge-html.py filein
outputs result to stdout

help:
	python purge-html.py -h
	python purge-html.py --help"""
	sys.exit()

# check file existence
File = sys.argv[1]
if not os.path.isfile(File):
	raise RuntimeError, "file '%s' does not exists" % File

# read text file
f = open(File)
t = f.readlines()
f.close()

# clean html
t = string.join(t)
t = re.subn(r'(>\s*)[^<]+(\s*<)', r'\1\2', t)[0]
t = re.subn(r'\s+title="[^"]+"', '', t)[0]

# output to stdout
print t

L'utilisation est très simple :

python purge-html.py input.html > output.html

Éventuellement on peut éliminer d'autres attributs en modifiant la seconde expression régulière :

'\s+(title|onclick|style)="[^"]+"'

Celle-ci repère tous les attributs title, onclick et style ainsi que leur valeur.