1. #1
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 832 Times in 435 Posts

    Standard [Bash] Crawl Nicks

    Moin,

    hier ein kleiner "Crawler" für Knuddels.de. Das Script sucht sich die Nicks aus dem Gästebuch, den Fans und den Fotokommentaren. Das ganze ist nicht rekursiv, aber das sollte kein Problem sein, die Vorlage habt ihr dmait ja schon.
    Je nach dem wie viel der Nick an Fans, Comments, o.Ä. hat dauert das ausführen ein bisschen. Das Script räumt danach auch nicht auf.
    War für mich nur, um zu testen wie weit ich komme und um mich etwas in sed einzuarbeiten, vielleicht will damit ja jemand mal rumspielen :-).

    Spoiler:
    Code:
    #!/bin/bash
        echo Nick: $1
        echo "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
        wget -qO quelltext - "http://hp.knuddels.de/cgi/gb_edit.pl?domain=knuddels.de&nickname=$1"
        echo -e "GBcomments: "
        cat quelltext | grep -Eo "(.*)</b>"|sed 's/<\/b>//' | sed -e '1d' | sed ':a;N;$!ba;s/\n/, /g'
        wget -qO quelltext - "http://photo.knuddels.de/photos-profile.html?id=$1"
        echo "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
        echo -e "Fotocomments: "
        cat quelltext | grep -A2 "<div class=\"username\">" | sed 's/<div class=\"username\">//' | sed 's/<\/div>//' | sed s/"--"// | sed s/"<a href=\"http:\/\/photo.knuddels.de\/photos-profile.html?id=.*\">"//| sed 's/<\/a>//'|sed '/^$/d'  |sed 's/&Uuml;/Ue/g' | sed s/"-"/"-"/g | sed 's/&Ouml;/Oe/g' | sed 's/&Auml;/Ae/g'| sed s/"&lt;"/"<"/g |sed s/"@"/"@"/g | sed 's/&uuml;/Ue/g' | sed 's/&ouml;/Oe/g' | sed 's/&auml;/Ae/g'| sed s/"&szlig;"/"ss"/g| sed s/"&gt;"/">"/g |uniq| sed ':a;N;$!ba;s/\n/, /g'
        wget -qO quelltext - "http://photo.knuddels.de/photos-fans.html?id=$1&fanInPage=1&albumPhotoId="
        echo "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
        echo -e "Fans: "
        cat quelltext | grep  -A2 "<a href=\"?id=.*&fanInPage=[0-9]*&albumPhotoId=\" class=\"page\">" | sed 's/<\/a> <a href="?id=.*&fanInPage=[0-9]*&albumPhotoId=" class="page">//' | sed s/"--"//g | grep "^[0-9]" >list
        cat quelltext | grep -A2 "<div class=\"username\">" | sed 's/<div class="username">//' | sed 's/<\/div>//' | sed s/"--"// | sed s/"<a href=\"http:\/\/photo.knuddels.de\/photos-profile.html?id=.*\">"//| sed 's/<\/a>//'|sed '/^$/d'  |sed 's/&Uuml;/Ue/g' | sed s/"-"/"-"/g | sed 's/&Ouml;/Oe/g' | sed 's/&Auml;/Ae/g'| sed s/"&lt;"/"<"/g |sed s/"@"/"@"/g | sed 's/&uuml;/Ue/g' | sed 's/&ouml;/Oe/g' | sed 's/&auml;/Ae/g'| sed s/"&szlig;"/"ss"/g| sed s/"&gt;"/">"/g |uniq| sed ':a;N;$!ba;s/\n/, /g'
        echo > fotonicks
        for i in $(cat list)
        do
        wget -qO quelltext - "http://photo.knuddels.de/photos-fans.html?id=$1&fanInPage=$i&albumPhotoId="
        cat quelltext | grep -A2 "<div class=\"username\">" | sed 's/<div class="username">//' | sed 's/<\/div>//' | sed s/"--"// | sed s/"<a href=\"http:\/\/photo.knuddels.de\/photos-profile.html?id=.*\">"//| sed 's/<\/a>//'|sed '/^$/d'  | sed s/"+"/"+"/g|sed s/"&amp;"/"&"/g|sed 's/&Uuml;/Ue/g' | sed s/"-"/"-"/g | sed 's/&Ouml;/Oe/g' | sed 's/&Auml;/Ae/g'| sed s/"&lt;"/"<"/g |sed s/"@"/"@"/g | sed 's/&uuml;/Ue/g' | sed 's/&ouml;/Oe/g' | sed 's/&auml;/Ae/g'| sed s/"&szlig;"/"ss"/g| sed s/"&gt;"/">"/g >> fotonicks
        done
        text=$(cat fotonicks | sort | uniq | sed ':a;N;$!ba;s/\n/, /g')
        echo $text


    Aufruf: ./crawl.sh Nick

    Es gibt Probleme in der Shell Umlaut und ß anzuzeigen, das heißt ß=ss und Umlaute sind wie in Kreuzworträtseln geschrieben.
    Geändert von Ta1lor (10.02.2012 um 21:27 Uhr)

Ähnliche Themen

  1. bash: lsb_release: command not found
    Von TomatenKetchup im Forum Server-Administration
    Antworten: 2
    Letzter Beitrag: 24.12.2013, 19:27
  2. Bash TS3-Server Skript (start/stop/restart)
    Von Snees im Forum Shellprogrammierung
    Antworten: 0
    Letzter Beitrag: 06.07.2013, 16:18
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.