Obtener la etiqueta seleccionada del archivo html

Obtener la etiqueta seleccionada del archivo html

Tengo una fuente de una página y necesito obtener todas las etiquetas de este archivo. El orden es importante. Necesito scripts externos e integrados. La etiqueta debe incluirse en la salida. Estoy buscando una herramienta de consola Linux.

Intenté buscar pero no pude encontrar nada, hasta el punto que usé jQuery para obtener esta información y la pegué en un archivo. Pero esta salida tiene una codificación extraña, por lo que necesito analizarla de forma tradicional.

Ejemplo: Entrada:

<html>
  <head>
    <script src="script1.js"></script>
    <script src="script2.js"></script>
    <script>alert('hello');</script>
  </head>
  <body>
    <div id="main">...</div>
    <script src="footer.js">
  </body>
</html>

Producción:

<script src="script1.js"></script>
<script src="script2.js"></script>
<script>alert('hello');</script>
<script src="footer.js">

Segundo ejemplo, genera solo atributos src.

script1.js
script2.js
inline script 
footer.js

Respuesta1

Puede usar greppara eso y su único parámetro coincidente ( -o), por ejemplo:

$ grep -o "<[^>]*>" <(curl -s http://example.com/)

Esto imprimirá todas las etiquetas html, incluido el pedido.

Para incluir solo <script>etiquetas, intente (cambie index.htmlcon su archivo):

$ grep -Eo "<script.*(</script>|>)" index.html

Para obtener solo los nombres de los archivos (del srcatributo), puede ampliar agregando otro grep, por ejemplo:

$ grep -Eo "<script.*(</script>|>)" index.html | grep -o '"[^"]*"' | tr -d '"'

La sintaxis anterior no le ayudará con muchas variaciones diferentes de código html, por lo tanto, para soluciones más complejas,usando expresiones regulares para analizar htmlEn general, no se recomienda, por lo tanto, debe utilizar las herramientas adecuadas (idioma de su preferencia o consulte estosherramientas de concha).

Respuesta2

Sé que ya has aceptado una respuesta, pero también quiero agregar que puedes investigarxpath.

Está destinado específicamente a datos de estilo xml.

En su caso, el xpath para esto sería

//script

AquíTambién hay otro ejemplo de alguien que usa xpath para analizar HTML.

información relacionada