Auswerten bestimmter URLs aus einer lokalen HTML-Datei

Auswerten bestimmter URLs aus einer lokalen HTML-Datei

Ich möchte bestimmte URLs aus einer gespeichertenhtml-Datei mit einem einfachen Bash-Skript/Befehl, damit ich sie wgetspäter herunterladen kann.
Was ich bisher habe, ist:

awk 'BEGIN{ RS="<a *href *= *\""} NR>2 {sub(/".*/,"");print; }' index.html >> url-list.txt

das jeden Link, der in meiner HTML-Datei enthalten ist, in ein übersichtliches TXT-Dokument schreibt.

Was ich jedoch brauche, sind nur spezifische Links

  • aus einer bestimmten Domain
  • alle .ogg Dateien zum Beispiel

alles was am Ende so aussehen würde:

http://www.foo.com/(zufälliger Ordner)/(zufälliger Basisname).ogg

oder

http://subdomain.foo.com/(zufälliger Ordner)/(ein weiterer zufälliger Unterordner)/(zufälliger Basisname).ogg

Dank im Voraus!

Antwort1

Sie sagen, Sie müssen es „in Bash“ tun, aber Sie scheinen „in einem Skript“ und nicht „mit reiner Bash-Syntax“ zu meinen (da besteht ein Unterschied). Ich nehme an, Sie wollen die Bedeutung „in einem Skript“.


Wenn Sie alle Links in einem Dokument in separaten Zeilen gespeichert haben, können Sie alle Links auf der Domain auswählen http://www.example.com/mit z. B.

grep "^http://www\.example\.com/" filewithlinks.txt

oder alle Links die mit .oggenden

grep "\.ogg$" filewithlinks.txt

(Der Backslash vor Punkten dient als Escapezeichen für das .Zeichen " ", das sonst "beliebiges Zeichen" bedeutet. " \." bedeutet stattdessen einen wörtlichen Punkt. Ohne Escapezeichen werden auch Links gefunden, die beispielsweise mit "logg" enden.)

Sie könnten die Zeilenübereinstimmung auch direkt im awk Befehl durchführen, aber das wäre meiner Meinung nach komplizierter, wenn man es von Zeit zu Zeit ändern müsste. Am einfachsten ist es, die vollständige Liste der Links wie oben beschrieben in einer Datei zu speichern und dann einfach mit z. B. grepoben in der Datei zu suchen. Dann müssen Sie das Dokument auch nicht erneut herunterladen und analysieren, wenn Sie das Übereinstimmungsmuster ändern möchten.

verwandte Informationen