Hur man diagram på instructables (2 / 8 steg)
Steg 2: Att få uppgifter
Här är BASH script som jag skrev att få data. Jag tycker i kommentarerna i själva koden är tillräckligt beskrivande så jag kommer inte att förklara dem igen här. Jag vill gärna förklara en viss del av koden som du inte förstår, fråga bara i en kommentar.Spara filen som instructables.sh och göra det runnable genom att ge kommandot "chmod 0755 instructables.sh".
Köra programmet genom att skriva "./instrucables.sh"
#! / bin/bash # Start från beginningoffset = 0# Fortsätt att få sidor tills förskjutningen är större än 5731while [$offset - lt 5731] # vara trevligt att webbservern! sömn 1 # Visa te användaren framsteg eko $offset # gör Webbadressen för att hämta URL: = " instructable /? sortera = senaste & offset =" $offset # få sidan som visas text (inte html) med hjälp av-dump flagga # sedan låta grep ta bort alla rader som inte innehåller frasen "postat av" # och slutligen sammanfoga alla linjer till loggfilen för senare bearbetning lynx-dump $url | grep "postat av" >> instructables.log # öka förskjutningen med 15 att komma till nästa 15 instructables offset=$((offset+15)) gjort # nu vi har datum för alla instructables i filen som heter instrucatbles.log # It't tid för att räkna antalet rader för varje kombination av rader som innehåller # ett visst år och månad combo. (Som Mar 2007). Genom att räkna dem. vi vet hur # många instructables som var publised under denna månad. # den yttre loopen hanterar åren att vi är intresserade infor året i 2005 2006 2007do # den inre loopen hanterar månaderna för månaden i Jan Feb Mar Apr kan Jun Jul Aug Sep okt Nov Dec gör # första sökning för alla linjer containign året. # Sedan rör som leder in i en andra grep som söker dessa linjer efter månad # och slutligen räkna antalet resulterande linjer count = $(grep $year instructables.log | grep $month | wc--linjer) # visar informationen till användaren att vi kan göra ett diagram av det senare echo $year $month, $count donedone