
Ich versuche, URLs aus einer Webseite bis zu benutzerdefinierten n Ebenen mit wget zu extrahieren. Ich habe dies versucht
wget -r -l$2 --reject=gif -O out.html www.google.com | sed -n 's/.*href="\([^"]*\).*/\1/p'` "
Es wird nur die erste Ebene angezeigt. Es werden keine Ebenen analysiert. Wie kann ich das beheben?
Antwort1
Entfernen Sie $2, es sei denn, Sie weisen anderswo die Variable 2=1 oder etwas Ähnliches zu. -l$2 führt dazu, dass wget eine Ausgabe macht wget: --level: Invalid number
, die sich nicht gut in sed einspeisen lässt.
du kannst tun:
wget -l 2 <address>
oder
wget --length=2 <address>
Sie könnten auch an der Option „no-parent“ interessiert sein, die verhindert, dass wget das Verzeichnis (n Ebenen) durchläuft. Dies ist eine besonders nützliche Option beim rekursiven Abrufen, da sie garantiert, dass nur die Dateien unterhalb einer bestimmten Hierarchie heruntergeladen werden.
wget -np <address>