Pozdrav,
ne znam koliko ovdje ima Matakovicevih fanova, no za one koji su tu:
primjetili ste da je tesko doci do starih Overklokinga koji tjedno izlaze na net.hr. Danas sam slucajno naletio na stari net.hr i skuzio da jos uvijek sve cuvaju u nekakvoj arhivi. Uz malo kopanja, pronasao sam da unutar HTML-a postoji zapisan tocan link na svaki broj u arhivi do broja 262, tako da sam to izvukao u zasebni file kao listu, te slozio skriptu koja:
- skine svaki HTML
- izparsa vani URL slike
- downloada strip u tocan directory tree po godini, mjesecu i danu (kasnije se ovo lako transformira kako kome pase)
Malo sam gledao, ali nisam nasao nikakav pattern u nazivlju HTML-a i slike, tako da mi nije preostalo drugo nego listanje i greppanje. Nisam pametan niti kako dohvatiti ostale brojeve nakon 262, pa ako ima netko ideju, nek predlozi.
Evo skripte (Bash), pa ako netko zeli sebi spremiti arhivu ovog genijalca, samo naprijed.
Jos jedna sitnica: iz nekog razloga, na HTML fileu 0361006.html nije tocno izgrepao sliku pa to treba na ruke... nesto sam zeznuo i sa logiranjem pa taj incident nije zabiljezen u log.... sve ostalo se cini da ide ko po loju.
Potrebno je spremiti listu u file "arhiva_list" i staviti ga u isti direktorij kao i skriptu, te pokrenuti. To je to.
Skripta:
#!/bin/sh
ROOT_PATH=$PWD
for ITEM in `cat arhiva_list`
#for ITEM in `tail -n2 arhiva_list`
do
echo "Working on $ITEM"
# Parse out directory data
YEAR=`echo $ITEM | awk -F/ '{ print $7; }' -`
MONTH=`echo $ITEM | awk -F/ '{ print $8; }' -`
DAY=`echo $ITEM | awk -F/ '{ print $9; }' -`
COMIC_PATH=$YEAR/$MONTH/$DAY
mkdir -p $COMIC_PATH
cd $COMIC_PATH
# Get HTML
wget $ITEM 2> $ROOT_PATH/wget_log
FILENAME=`echo $ITEM | awk -F/ '{ print $10; }' -`
# This huge one liner will grep out the line that contains correct JPG file and SED the filename out of it
IMAGE_NAME=`cat $FILENAME | grep -E src=\"/$YEAR/$MONTH/$DAY/.*.jpg\" | sed -r "s|.+$YEAR/$MONTH/$DAY/(.*.jpg).+$|\1|g"`
# Then create full URL
IMAGE_URL="http://arhiva.net.hr/$YEAR/$MONTH/$DAY/$IMAGE_NAME"
wget $IMAGE_URL 2> $ROOT_PATH/wget_log
# Check if we failed anywhere in case net.hr isn't consistent
if [ $? == 4 ]
then
echo "Failed $FILENAME" >> $ROOT_PATH/error_log
fi
# Cleanup everything and go with next file
rm $FILENAME
cd $ROOT_PATH
echo $IMAGE_URL downloaded.
done
