[FIXED] Finden Sie den neuesten Link von einer HTML-Seite, die Download-Standorte auflistet

Ausgabe

Ich versuche, ein Äquivalent zu dem folgenden github-spezifischen Code zu erstellen, der funktioniert, um das neueste Artefakt zu finden, das unter https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master zum Download verfügbar ist – die Download-Links sehen irgendwie aus wie https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/5901-5db768d8bbb973ba27c81e424aea2910144a3100/fx.tar.xz .

# Working code for github.com, needs to be converted to fivem.net
LOCATION=$(curl -s https://api.github.com/repos/someuser/somerepo/releases/latest \
| grep "tag_name" \
| awk '{print "https://github.com/someuser/somerepo/archive/" substr($2, 2, length($2)-3) ".zip"}') \
; curl -L -o file.zip $LOCATION

Die Datei hat eine inkrementelle Versionsnummer, aber keine fortlaufende Nummer, gefolgt von einem völlig zufälligen Hash.

Wie finde ich den neuesten Download-Link von der HTML-Seite unter https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master ?

Lösung

Wir können auf der Verwendung von aufbauen lynx dump, wie in der einfachsten Methode zum Extrahieren der URLs aus einer HTML-Seite nur mit sed oder awk vorgeschlagen —

#!/usr/bin/env bash

url_re='https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/([[:digit:]]+)-([[:xdigit:]]+)/fx.tar.xz'
newest_link_num=0
newest_link_content=
while read -r _ link; do
  [[ $link =~ $url_re ]] || continue
  if (( ${BASH_REMATCH[1]} > newest_link_num )); then
    newest_link_num=${BASH_REMATCH[1]}
    newest_link_content=$link
  fi
done < <(lynx -dump -listonly -hiddenlinks=listonly https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master)

echo "Newest link is: $newest_link_content"

Während ich dies schreibe, endet es mit der folgenden Ausgabe:

Neuester Link ist: https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/5901-5db768d8bbb973ba27c81e424aea2910144a3100/fx.tar.xz


Beantwortet von –
Charles Duffy


Antwort geprüft von –
Terry (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like