Ich muss die endgültige URL nach einer Seitenumleitung erhalten, vorzugsweise mit Curl oder Wget.
Beispielsweise kann http://google.com zu http://www.google.com umleiten .
Der Inhalt ist leicht zu bekommen (zB curl --max-redirs 10 http://google.com -L
), aber ich interessiere mich nur für die endgültige URL (im ersteren Fall http://www.google.com ).
Gibt es eine Möglichkeit, dies nur mit integrierten Linux-Tools zu tun? (nur Befehlszeile)
:-)
-I
sonst wird die Datei tatsächlich heruntergeladen.curl -A ...
, um zum erwarteten Speicherort umzuleiten.Danke, das hat mir geholfen. Ich habe einige Verbesserungen vorgenommen und diese in ein Hilfsskript "finalurl" eingeschlossen:
-o
Ausgabe an/dev/null
-I
nicht wirklich herunterladen, sondern nur die endgültige URL ermitteln-s
stiller Modus, keine FortschrittsbalkenDies ermöglichte es, den Befehl aus anderen Skripten wie diesen aufzurufen:
quelle
finalurl() { curl --silent --location --head --output /dev/null --write-out '%{url_effective}' -- "$@"; }
als weitere Option:
Aber es geht nicht über den ersten hinaus.
quelle
Sie können dies normalerweise mit wget tun.
wget --content-disposition
"url" zusätzlich, wenn Sie hinzufügen, werden-O /dev/null
Sie die Datei nicht tatsächlich speichern.wget -O /dev/null --content-disposition example.com
quelle
-O /dev/null
Nur von bis ersetzen-O-
. Besser:wget -O- --content-disposition example.com
Danke dir. Am Ende habe ich Ihre Vorschläge umgesetzt: curl -i + grep
Gibt leer zurück, wenn die Website nicht umgeleitet wird, aber das ist gut genug für mich, da es bei aufeinanderfolgenden Weiterleitungen funktioniert.
Könnte fehlerhaft sein, aber auf einen Blick funktioniert es in Ordnung.
quelle
Die Parameter
-L (--location)
und-I (--head)
immer noch unnötige HEAD-Anfrage an die Location-URL.Wenn Sie sicher sind, dass Sie nicht mehr als eine Umleitung haben, ist es besser, die Verfolgungsposition zu deaktivieren und eine Curl-Variable% {redirect_url} zu verwenden.
Dieser Code führt nur eine HEAD-Anfrage an die angegebene URL aus und übernimmt redirect_url aus dem Location-Header:
Geschwindigkeitstest
all_videos_link.txt
- 50 Links von goo.gl + bit.ly, die zu youtube weiterleiten1. Mit Verfolgungsort
Ergebnisse:
2. Ohne Ort zu folgen
Ergebnisse:
quelle
Ich bin nicht sicher, wie ich es mit Curl machen soll, aber libwww-perl installiert den GET-Alias.
quelle
Das würde funktionieren:
quelle
Kannst du es versuchen?
Hinweis: Wenn Sie den Befehl curl -I ausführen, muss http://your-domain.com einfache Anführungszeichen im Befehl like verwenden
curl -I 'http://your-domain.com'
quelle
Sie könnten grep verwenden. Wget sagt dir nicht, wo es auch umleitet? Grep das einfach raus.
quelle