Cómo extraer una URL particular de etiquetas HTML usando comandos UNIX

Cómo extraer una URL particular de etiquetas HTML usando comandos UNIX

Quiero extraer un enlace http://www.rediff.com/newsde la siguiente <a>etiqueta

<a href="http://www.rediff.com/news" onclick="trackURL('http://track.rediff.com/click?url=___http://www.rediff.com/news___&cmp=news1_nav&lnk=news1_nav&nsrv1=ushome');return false;"><div class="n_tabnormal">News</div></a>

usando algún comando de Unix. Por favor, no hay codificación rígida para esto.

Respuesta1

Usar analizadores XML/HTML es una forma correcta de manipular datos XML/HTML:

xmlestrellasolución:

sed 's/&/&amp;/g' yourfile | xmlstarlet sel -t -v '//a[div/text() = "News"]/@href' -n

La salida:

http://www.rediff.com/news

  • sed 's/&/&amp;/g'- para convertir el signo comercial &como un carácter especial en una entidad HTML

  • //a[div/text() = "News"]/@href- expresión xpath, extrae hrefel valor del atributo de ala etiqueta si tiene un nodo secundario divcon textoNews

información relacionada