Kontakt  Presse  reticon-Redakteure   Impressum   Datenschutz  
reticon Bildung und Neue Medien
reticon - Bildung und Neue Medien

URL-Listen mit wget

URL-Listen mit wget

03.03.2011, (MR)

Etwas für die technisch Interessierten: Ein kurzes How To wie man URL-Listen eines Webauftritts mit wget einsammelt, das Logfile aufbereitet, um damit z.B. die Grundlage für einen Lasttest zu schaffen.

Die Ausgangslage ist simpel - nehmen wir an, wir haben einen Webserver mit vielen tausend Webseiten, den wir einem Lasttest unterziehen wollen. Tools für Lasttests gibt es jede Menge, wir haben bei uns im Hochschulrechenzentrum in letzter Zeit immer ganz gute Erfahrungen mit apaches jmeter gemacht.

Damit jmeter Last erzeugen kann, benötigen wir eine Liste an URLs, die die jmeter-Instanzen als Grundlage bekommen. Ein Weg quasi von außen an die einzelnen URLs zu kommen, der praktikabel und schnell umsetzbar ist, geht über das Tool wget.

wget ist normalerweise ein Tool, um Kopien von Webseiten zu erstellen. wget verhält sich dabei ähnlich dem Robot einer Suchmaschine und hangelt sich von Link zu Link und erstellt dabei Kopien der Seiten. Im Original kommt wget als Kommandozeilen-Tool daher und ist über Parameter hoch konfigurierbar.

Für unseren Zweck bietet sich die "spider-Option" an, d.h. wget hinterlässt keine Kopien der Webseiten auf der Festplatten - die brauchen wir gar nicht, da es uns nur um die Adressen geht, die wget findet.

wget -r --spider -l3 http://www.reticon.de  -o urlliste.txt

Kurze Erklärung der verwendeten Parameter:
  • -r wget arbeitet sich rekursiv durch die angegebene Ziel-URL
  • --spider wget lädt keine Dateien herunter
  • -l3 mit -l gibt man die Rekursionstiefe an, in diesem Fall macht wget nach der dritten Ebene Schluss
  • Ziel-URL Startpunkt von wget
  • -o urlliste.txt mit dem Paramter -o erzeugt wget ein Logfile und zwar in die direkt danach angegebene Datei, in unserem Falle also urlliste.txt

Für wget war es das schon, lässt man wget damit laufen, wühlt sich wget die ersten drei Ebenen durch reticon.de und protokolliert dabei alles in die Datei urlliste.txt

Noch sind wir nicht ganz fertig, denn ein Blick in das Protokoll verheißt noch weitere Arbeit, dort sieht es bisher so aus:

Spider mode enabled. Check if remote file exists.
--2011-03-03 07:28:58-- http://www.reticon.de/
Resolving www.reticon.de... 82.165.148.57
Connecting to www.reticon.de|82.165.148.57|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain links to other resources -- retrieving.

--2011-03-03 07:28:58-- http://www.reticon.de/
Connecting to www.reticon.de|82.165.148.57|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `www.reticon.de/index.html'

[...]

Jetzt kommt Teil zwei - wir reduzieren das wget-Log auf eine handhabbare Liste, in unserem Fall nehmen wir den schönen Befehl cat:

cat urlliste.txt | grep -P "--d{4}" | cut -d " " -f 4 | sort | uniq > urlliste_endgueltig.txt

In der Datei urlliste_endgueltig.txt stehen dann fein säuberlich alle URLs:

http://www.reticon.de/
http://www.reticon.de/archiv
http://www.reticon.de/bildungsatlas.html
http://www.reticon.de/datenschutz.html
http://www.reticon.de/impressum.html

[...]

Die so generierte Liste könnte jetzt der Ausgangspunkt für einen recht simplen Lasttest sein.
Der hier aufgeführte Weg ist vermutlich dann auch nur der erste Einstieg ins Thema - sobald es dann komplizierter werden soll ist man mit wget ziemlich schnell am Ende der Fahnenstange. Wenn es darum geht, dass man z.B. Lasttests mit Benutzeraktionen machen möchte (d.h. Login, danach bestimmte Funktionen aufrufen, Formulare ausfüllen, Abfragen stellen etc.), dann wird man die Tools wechseln müssen. Da gibt es Tools, um dann z.B. direkt die Daten aus dem Browser, mit dem man exemplarisch einmal die Aktionen vornimmt, quasi wie mit einem Proxy mitzuschneiden. So etwas ist z.B. in jmeter auch eingebaut.

Wer aber das Problem hat, einfach seinen Webauftritt zu checken, zu schauen ob die Caching-Mechanismen wie geplant funktionieren und daher eine große Anzahl an URLs benötigt, der ist mit dem beschriebenen wget-Weg sehr schnell am Ziel.

Die verwendeten Tools wget und cat funktionieren unter Linux/MacOS problemlos, wget zumindest bekommt man auch unter Windows ans Laufen, für cat kenne ich dort keine Alternative, Hinweise gerne in die Kommentare. Ich nutze das selbst unter MacOS.

Links zum Weiterlesen:

 

Informationen zum Artikel

blog comments powered by Disqus

Verwandte News

  • Keine verwandten News gefunden.

Verwandte Reporte

  • Keine verwandten Reporte gefunden.

RSS & Social Media

rss-Bild
rss-Bild
rss-Bild
rss-Bild

myreticon

E-Mail
Passwort Login

myreticon wird zum 30.06.2012 eingestellt, bitte sichern Sie Ihre Daten.

Infos & Hilfe | Registrieren

Kostenlose Newsletter

Wöchentliches Newsletter
Tägliche Medientipps

E-Mail:  

reticon-Quiz

Was ist ein "gender changer"?

Spotbezeichnung für plastische Chirurgen.
Adapter, der bei Kabeln Buchse auf Buchse oder Stecker auf Stecker schaltet.
Spezies, die bei Mangel an Männchen weibliche Individuen zu männlichen Sexualpartnern umbildet.
Person, die ein von der sexuellen Geschlechtsrolle deutlich abweichendes Verhalten zeigt.

» Alle reticon Quiz-Fragen

Sprüche & Zitate

Zurück zum Beton - Scheiß Natur!

Graffito