#!/bin/bash

pages=39

#tmp
mkdir /tmp/leserservice
cd /tmp/leserservice

# alle
for a in $(seq $pages); do curl -s http://www.leserservice.de/zeitschriften/seite-$a/ | grep '/zeitschriften/[^"]*" name=.*</a>$' | grep -o /zeitschriften/.*htm; done > alle
for z in $(<alle); do u=${z/\/zeitschriften\/}; lynx -dump http://www.leserservice.de/zeitschriften/$u | iconv -f iso-8859-1 > $u; done

# Abo-Count
for i in *.htm; do grep -c abo.*EUR$ $i > $i.count; done

# Auswertung
echo "Zeitschrift;Aboname;Laufzeit;Erscheinungsweise;Preis;Payback;°P Vorteil"
for i in *.htm; do
    zeitschrift="$(grep Abolaufzeiten.*Zeitschrift $i | sed 's/^.*Zeitschrift.//')"
    erscheinungsweise="$(grep Erscheinungsweise $i | cut -d" " -f5-)"
    for c in $(seq $(<$i.count)); do
         ab abo.*EUR$ $i | head -n $c | tail -n 1 | sed 's/^ *//' | cut -d" " -f1)"
        preis="$(grep abo.*EUR$ $i | head -n $c | tail -n 1 | egrep -o '[0-9,]+ EUR' | sed 's/ EUR//')"
        vorteil="$(grep -A 30 ^$aboname $i | egrep '°P' | head -n 1 | egrep -o '[0-9]+')"
        laufzeit="$(grep -A 30 ^$aboname $i | egrep 'Laufzeit' | head -n 1 | egrep -o '[0-9]+')"
        payback="$(grep -A 30 ^$aboname $i | egrep 'PAYBACK Punkte' | grep [0-9]0 | head -n 1 | egrep -o '[0-9.]+')"
        if [ $laufzeit -eq 24 ]; then
            preis="$(echo "scale=2;$preis*2" | tr , . | bc | tr . ,)"
        fi
        echo "$zeitschrift;$aboname;$laufzeit;$erscheinungsweise;$preis;$payback;$vorteil"
    done
done

cd /tmp
rm -r leserservice/

Add a code snippet to your website: www.paste.org