Ausgewähltes Tag aus HTML-Datei abrufen

Ausgewähltes Tag aus HTML-Datei abrufen

Ich habe die Quelle einer Seite und muss alle Tags aus dieser Datei abrufen. Die Reihenfolge ist wichtig. Ich brauche sowohl externe als auch Inline-Skripte. Das Tag muss in der Ausgabe enthalten sein. Ich suche nach einem Linux-Konsolentool.

Ich habe gesucht, aber nichts gefunden. Ich habe diese Informationen mit jQuery abgerufen und in eine Datei eingefügt. Diese Ausgabe hat jedoch eine seltsame Kodierung, sodass ich sie auf herkömmliche Weise analysieren muss.

Beispiel: Eingabe:

<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>

Ausgabe:

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

Zweites Beispiel, gibt nur Quellattribute aus.

script1.js
script2.js
inline script 
footer.js

Antwort1

grepSie können dafür und seinen einzigen passenden Parameter ( ) verwenden -o, zB:

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

Dadurch werden alle HTML-Tags einschließlich der Reihenfolge gedruckt.

<script>Um nur Tags einzuschließen , versuchen Sie (ändern Sie es index.htmlmit Ihrer Datei):

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

Um nur die Dateinamen (aus srcdem Attribut) zu erhalten, können Sie durch Hinzufügen eines weiteren erweitern grep, z. B.:

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

Die obige Syntax hilft Ihnen bei vielen verschiedenen Variationen von HTML-Code nicht weiter. Für komplexere LösungenVerwenden von regulären Ausdrücken zum Parsen von HTMLwird im Allgemeinen nicht empfohlen, daher sollten Sie geeignete Tools verwenden (Sprache Ihrer Wahl oder schauen Sie sich diese anShell-Werkzeuge).

Antwort2

Ich weiß, dass Sie bereits eine Antwort akzeptiert haben, aber ich möchte auch hinzufügen, dass Sie sich Folgendes ansehen können:xpath.

Es ist speziell für Daten im XML-Stil gedacht.

In Ihrem Fall wäre der XPath hierfür

//script

Hierist auch ein weiteres Beispiel für jemanden, der XPath zum Parsen von HTML verwendet

verwandte Informationen