Wget mastery – część 2

Posted by Ktoso on 17/08/2009 – 13:21

Czas na krok w próbach wymasterowania wget”a. Ostatnio pliki mieliśmy podane na tacy jako że XKCD trzymają je w jednym miejscu i w dodatku pozwalają na przeglądanie folderów na serwie. Co jednak jeżeli obrazki (znowu będziemy pobierać komix) są porozrzucane na kilka serwerów, oraz nie możemy się do ich adresów dostać inaczej niż chodząc po stronie? Tutaj konieczny będzie mały skrypcik w bashu już!

#!/bin/sh
  1.  
  2. for r in `seq 2005 2008`
  3. do
  4.    for m in `seq 1 12`
  5.    do
  6.       curl "http://boli.blog.pl/archiwum/?rok=$r&miesiac=$m" | grep -o -e ''http://.\\{1,50\\}\\.jpg'' >> plik
  7.    done
  8. done
  9. wget -A.jpg `cat plik`
  10. rm plik
  11.  
  12. cowsay "Wszystkie komiksy pobrane!"

To teraz szybko wytłumaczę jak ten kod powstał… Wchodzimy na stronę będącą naszym celem i sprawdzamy jak w łatwy sposób dostać wszystkie odcinki. Czy to przez przewijanie ich pojedyncze przez podawanie kolejnych ID wpisob bloga, czy tak jak tutaj, przez pobieranie stron miesięcznych dla każdego roku. Szybko piszemy pętelki przechodzące po miesiącach i latach… A wewnątrz używając CURLa pobieramy te strony, które przepuszczamy przez GREP aby znalazł nam adresy obrazków (znajomość wyrażeń regularnych tutaj ważna już…). Wszystkie URLe zapisujemy do pliku, z którego później każemy wgetowi brać URLe do pobrania – tak jak w poprzednim przykładzie. Potem kasujemy pliczek. Proste!


This post is under “coding, guide” and has no respond so far.
If you enjoy this article, make sure you subscribe to my RSS Feed.

Post a reply