著者: YP 日付: To: guilde 題目: Re: Parser du html en bash
Le 28/11/2013 13:18, Sylvain Pogodalla a écrit : > Bonjour à tous,
Re !
> Hugues Levasseur writes:
> > Mais dans mon cas, je ne veut pas réécrire Firefox en ligne de
> > commande, je voudrait juste extraire une chaine d'un fichier. Une
> > chaine qui commence par <div id="maCible"> et qui se fini au
> > prochain </div> rencontré
> >
> > ... c'est peut-être plus dans les cordes des RegExp ?
>
> En toute généralité : non (et c'est vrai pour les théoriciens comme
> pour les praticiens :-).
En pratique, et selon ce qu'on veut faire ou ce qu'on a à traiter, si le
code qu'on a à traiter est assez pourri pour faire échouer un tidy pour
tenter d'avoir de l'xhtml, il n'y a guère de solutions propres.
Les regexp sont un moindre mal, et en tout cas elles permettent de faire
le boulot quand même - surtout quand il faut traiter quelques centaines
de pages régulièrement, en provenance de sites sur lesquels on n'a
aucune prise - malgré tout, tout en tenant compte des remarques exprimées.
Sinon, un truc comme :
xmllint --xpath "//div[@id='maCible']" text.xhtml
est sans doute plus élégant, efficace et nettement moins prise de tête
aussi... Mais pas toujours possible ;)