ubuntuusers.de

wget Pattern + download Reihenfolge merken

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

Steusi

Anmeldungsdatum:
26. August 2009

Beiträge: 32

Hallo zusammen,

ich würde gerne eine Website vollständig runterladen und anschließend zu einer PDF-Datei erstellen. Es werden freie Bücher als HTML-Versionen zum lesen angeboten. Damit es verständlich ist, beschreibe ich kurz den Aufbau Hauptseite: http://WEBSITE/?vpath=bibo/ebook/HutZuMath_1/cont/HutZuMath.htm

Auf diese Seite sind alle Links, die zum Buch gehören im folgendem Format:

1
<a href="?vpath=bibo/ebook/HutZuMath_1/cont/HutZuMath.htm/HutZuMath.bibliography%2Ehtm" target="_self">Inhalt</a>

Wget soll nun allen Links folgen und diese herunterladen, wo der Buchname: "HutZuMath_1" enthalten ist. Alle anderen sollen ignoriert werden! Leider klappt es nicht mit dem -A Parameter:

wget -r -c --convert-links -A '*HutZuMath_1*' http://WEBSITE/?vpath=bibo/ebook/HutZuMath_1/cont/HutZuMath.htm

Er läd lediglich die Index-Seite herunter.

Arbeitet wget per Tiefensuche, sprich der Befehl folgt den Links immer erst soweit wie möglich, bevor der nächste Link kommt? Dann würde ich es gerne als Schleife haben und jede ermittelte Webseite umbenennen, sodass ich einen Laufindex ran hängen kann. Anschließend könnte ich nach dem Laufindex sortieren und daraus eine PDF-Datei erstellen. Geht so etwas?

Freue mich über Anregungen und Ratschläge.

Vielen Dank

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17625

Wohnort: Berlin

Das sieht aber gar nicht nach freien Büchern aus, sondern nach Spam:

See how you can create a website in just minutes Create Your Website

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

user unknown schrieb:

Das sieht aber gar nicht nach freien Büchern aus, sondern nach Spam:

See how you can create a website in just minutes Create Your Website

Wo hast Du das denn her?

Steusi schrieb:

Leider klappt es nicht mit dem -A Parameter:

wget -r -c --convert-links -A '*HutZuMath_1*' http://WEBSITE/?vpath=bibo/ebook/HutZuMath_1/cont/HutZuMath.htm

Er läd lediglich die Index-Seite herunter.

Mir scheint der Filter untauglich:

1
2
$ wget --help | fgrep -e -A
  -A,  --accept=LIST               comma-separated list of accepted extensions.

Ciao

robert

Steusi

(Themenstarter)

Anmeldungsdatum:
26. August 2009

Beiträge: 32

rklm schrieb:

user unknown schrieb:

Das sieht aber gar nicht nach freien Büchern aus, sondern nach Spam:

See how you can create a website in just minutes Create Your Website

Wo hast Du das denn her?

Oh, ich hatte einfach nur den Domainnamen durch WEBSITE ersetzt, wusste nicht das jemand rauf klickt - sorry!

rklm schrieb:

Mir scheint der Filter untauglich:

1
2
$ wget --help | fgrep -e -A
  -A,  --accept=LIST               comma-separated list of accepted extensions.

Ich habe mich hieran gehalten: http://www.gnu.org/software/wget/manual/html_node/Types-of-Files.html

Danach sollte es klappen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

Steusi schrieb:

Ich habe mich hieran gehalten: http://www.gnu.org/software/wget/manual/html_node/Types-of-Files.html

Danach sollte es klappen.

Wer lesen kann ist klar im Vorteil. ☺ Hast Recht, aber da ist die Kommandozeilenhilfe von wget ja ziemlich ungenau. Gut zu wissen. Ich kann leider jetzt nicht weiter nachschauen. Ich würde mal irgendeine offizielle Seite herunterladen und mit den Optionen spielen. Du kannst ja wget -O /dev/null machen, wenn Du nur sehen willst, was er holt.

Ciao

robert

Steusi

(Themenstarter)

Anmeldungsdatum:
26. August 2009

Beiträge: 32

OK, dann brechen wir das Pattern-matiching auf ein einfaches Beispiel runter.

Ich möchte bei http://openbook.galileocomputing.de/linux/ nur das 1. Kapitel herunterladen.

Alle Links zum 1. Kapitel haben folgenden Bestandteil linux/linux_kap01

Nach meinen Wissen sollte es dann so funktionieren:

wget -r -c --convert-links -A '*linux/linux_kap01*' http://openbook.galileocomputing.de/linux/

Klappt leider nicht, dann mir jemand die korrekte Schreibweise nennen. Danke

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Worauf kommt es Dir an ? - auf den Download selber, oder auf eine Programmierübung mit wget ?

Wenn Du nur den Download haben willst, reicht es, wenn Du die nackten Seitenadressen (z.B. über Brace Expansion) an wget verfütterst:

wget http://openbook.galileocomputing.de/linux/linux_kap01_00{1..7}.html

Wenn es um genauere Details zu wget geht, musst Du nochmal in man wget nachlesen und ansonsten probieren.
Da kann ich Dir nicht so viel weiter helfen.

LG,

track

sethipethi

Anmeldungsdatum:
14. Oktober 2011

Beiträge: Zähle...

gudn tach!

rklm schrieb:

Steusi schrieb:

Ich habe mich hieran gehalten: http://www.gnu.org/software/wget/manual/html_node/Types-of-Files.html

Danach sollte es klappen.

Wer lesen kann ist klar im Vorteil. ☺ Hast Recht, aber da ist die Kommandozeilenhilfe von wget ja ziemlich ungenau. Gut zu wissen.

und wer weiterlesen kann, ist noch klarer im vorteil. oder so. denn ganz am ende der oben velinkten seite steht noch, dass diese pattern auf den url _und_ den lokalen dateinamen angewendet werden. in dem lokalen filename sind z.b. keine pfadangaben mehr drin. wenn das mal nicht intuitiv ist...

Steusi schrieb:

Ich möchte bei http://openbook.galileocomputing.de/linux/ nur das 1. Kapitel herunterladen.

Alle Links zum 1. Kapitel haben folgenden Bestandteil linux/linux_kap01

Nach meinen Wissen sollte es dann so funktionieren:

wget -r -c --convert-links -A '*linux/linux_kap01*' http://openbook.galileocomputing.de/linux/

Klappt leider nicht, dann mir jemand die korrekte Schreibweise nennen.

aus dem oben genannten grund, muss es heissen:

wget -r -c --convert-links -A 'linux_kap01*' http://openbook.galileocomputing.de/linux/

mit -I (grosses I) kann man dann noch constraints angeben, die sich _nur_ auf den pfad auswirken.

prost seth

Antworten |