Annons

"Dator! Visa mig alla nuvarande väderförhållanden inom 300 miles från min nuvarande plats ”
“Ja kapten”
"Visa mig nu fuktighetsnivåerna för dessa platser, kartlade efter longitud och latitud på en karta"
“Ja kapten”

Vill du förvandla ditt Google Drive-konto till ett intelligent väder analyssystem Bli en expertdataanalytiker över natten med hjälp av Googles kalkylbladrapportverktygVisste du att ett av de största verktygen för alla för att göra dataanalys faktiskt är Google Spreadsheet? Anledningen till detta är inte bara för att det kan göra nästan allt du kanske vill ... Läs mer , och leva ut denna Star Trek-fantasi? Okej, du kanske inte kan förvandla Google Spreadsheets till ett konstgjordt intelligent datorsystem som svarar på dina röstkommandon, men i detta artikel Jag visar hur du kan importera väderdata från Internet och ha en egen anpassad instrumentpanel med all information som är viktig för du.

Att fullfölja den här uppgiften kan låta till en början om du inte känner till att använda ImportXML eller Xpath för

instagram viewer
skrapa webbsidan Hur man bygger en grundläggande webbcrawler för att dra information från en webbplatsHar du någonsin velat fånga information från en webbplats? Så här skriver du en sökrobot för att navigera på en webbplats och extrahera det du behöver. Läs mer , men jag visar dig några mycket enkla knep som du kan använda för att extrahera den väderinformation du vill ha specifikt från USA. National Weather Service hemsida. Om du är utanför USA borde samma tekniker fungera för din egen lokala vädertjänst behöver bara bestämma strukturen för hur väderinformationen läggs ut och justera frågan följaktligen.

Detta liknar automatiska kalkylrapporter Hur man skapar en automatisk Google-kalkylrapport från Analytics-data Läs mer Jag beskrev inte för länge sedan, men i det här fallet använder den webbskrapade data snarare än Google Analytics-data. Så om du vill anpassa din egen automatiskt uppdaterade väderpanel i ditt eget Google Drive-konto, låt oss komma igång!

Hitta källans väderdata

I den här övningen ska du skrapa väderdata från webbplatsen för National Weather Service genom att leta efter specifika CSS-klasser på sidan som identifierar de data du vill ha. Tack och lov organiserade denna webbplats väderresultaten med klasser när du söker efter den lokala prognosen i ditt område.

väder dashboard1

Formatet för HTML som vi är intresserad av i det här fallet är antingen en "span class" eller en "p class" som identifierar den specifika informationen. Till exempel, som visas nedan, kan du se klassen "myforecast-current-lrg" identifierar den senaste inspelade temperaturen för den frågade regionen.

väder dashboard2

Så varje gång du kör en fråga på webbplatsen ser du en URL-adress som visar den platsens longitud och latitud - behåll en kopia av den webbadressen eftersom du använder den för att bygga din instrumentpanel. Du kan antingen visa HTML-källkoden direkt eller använda din webbläsarutvecklarverktyg Ta reda på problem med webbplatsen med Chrome Developer Tools or FirebugOm du har följt mina jQuery-tutorials hittills har du kanske redan stött på några kodproblem och inte vetat hur du fixar dem. När du står inför en icke-funktionell kodkod, är det mycket ... Läs mer att hitta de klasser du behöver.

Ställa in data för väderkällor

Hur detta fungerar är att du skapar ett datablad för varje plats som du vill samla in data för. Skriv etiketter för den informationen i den vänstra kolumnen, och i nästa kolumn måste du skriva ImportXML-formeln för att hämta in den informationen från webbplatsen.

För temperatur fungerar till exempel följande:

= importxml (B12; ”// p [@ class =’ myforecast-ström-LRG’]”)

B12 innehåller URL: en efter att platsfrågan har utförts. Att använda "// p [@ class =" är hur man ställer in Xpath-frågan för att extrahera “p-klassen” på sidan med det angivna namnet. Denna fråga returnerar temperaturen på sidan.

väder dashboard4

Att extrahera fuktighet, vindhastighet och resten av datapunkterna krävde faktiskt att extrahera listobjekt inuti en UL-lista med ett klassnamn "aktuella förhållanden-detaljer". Följande ImportXML-uttalande gör detta:

= importxml (B12; ”// ul [@ class =’ ström-betingelser-detalj’] // li”)

Återigen identifierar “ul” baselementet, och sedan anges klassnamnet inom parentes som visas. Detta följs av "// li" som indikerar att du vill extrahera alla listobjekt i UL-klassen.

Detta fyller ut resten av dataobjekten i källarket för den platsen.

väder dashboard7

Du bör också inkludera URL: en i det här fallet, eftersom latitud och longitud ingår i URL, och du kan använda att använda Google Spreadsheet kartor för att kartlägga datapunkter på en karta (visas Nedan).

Upprepa processen ovan för varje plats som du vill dra väderdata för. Kör frågan för den platsen på webbplatsen, kopiera URL: n och skapa ett nytt ark för platsen och fyll den med nödvändiga ImportXML-uttalanden för att skrapa de data du behöver.

Bygga det huvudsakliga kalkylbladet

När du har skapat alla dina platsdatablad är du redo att bygga det huvudsakliga kalkylbladet för din instrumentpanel. Det här är i princip att lägga upp data i tabellformat så att det är lättare att kartlägga saker som temp, fukt, vindhastighet etc.

Skapa en rubrikrad för all data, och kartlägg sedan bara varje cell till de platsdatabladplatser som innehåller informationen.

väder dashboard8

När du är klar kommer alla uppgifter som du har skrapat från webbplatsen för varje plats att läggas ut i denna enda tabell för enkel granskning (och kartläggning).

väder dashboard10

Det krävs vissa justeringar i vissa fall eftersom uppgifterna kommer in som strängar inklusive enheter. Det finns några trick för att extrahera bara datavärden. Den första är att ta bort slutenheterna med hjälp av en kalkylbladformel så här:

= mitten (C2,1, hitta (“F”, C2) -2)

Detta hittar i princip platsen för enheten och extraherar sedan det verkliga värdet tills enhetstexten startar. När du bara har extraherat siffran måste du konvertera det till ett verkligt värde i kalkylarket så att du kan göra beräkningar eller kartlägga det. Detta är enkelt med bara en "värde" -funktion som visas här.

väder dashboard11

När du har skapat alla dina värden i kalkylbladet i instrumentpanelen har du gjort dina data. Nu kan du gå vidare med att skapa diagram och mätare som kommer att utgöra din grafiska väderpanel.

Skapa din väderpanel

Detta är den enkla delen - bara kartlägga platsen tillsammans med vilken information du vill visa. Du kan göra saker som att visa ett stapeldiagram över alla platser - i mitt fall kan jag se den varmaste platsen i staten med en överblick genom att använda den här typen av diagram.

väder dashboard12

Du kan skapa temp, fuktighet eller vindhastighetsmätare, som alltid är roliga att visa på en instrumentbräda. Du kan extrahera longitud- och latituddata från webbadressen med samma "mitt" -kommando som jag beskrev ovan, infoga dessa platser i huvudkalkylarket (med komma mellan dem) och använd sedan den kolumnen för att kartlägga data på en Karta.

Nedan har jag kartlagt temperaturer med GPS-koordinater i kartkartswidget som finns i Google Spreadsheets. Större cirklar på kartan visar platser med högre temperaturer.

väder dashboard13
Som du antagligen kan föreställa dig kan du dra ihop några riktigt coola instrumentpaneler som visar dig alla slags information om vädret antingen i ditt land, land eller vilken region du har samlat in dina uppgifter från. Du kan använda några av de många användbara Googles kalkylarkfunktioner Utför fantastiska funktioner med dessa användbara Googles kalkylarkfunktionerJag skäms för att erkänna att jag bara nyligen har beslutat att börja experimentera med Google Spreadsheets, och vad jag har upptäckt är att oavsett lockelse eller kraft som Excel hade över mig på grund av det fantastiska saker... Läs mer som är tillgängliga för att utveckla en riktigt cool utseende instrumentpanel.

Medan den här artikeln är inriktad på att skrapa data från väderwebbplatser, är det också ett exempel på hur du kan använda ImportXML för att importera information från några webbplats där ute, och att använda Xpath ger dig mycket mer flexibilitet för att importera mycket specifik information från en webbplats som ImportFeed eller ImportHTML bara inte ger.

Kan du tänka på några roliga och kreativa användningsområden för ImportXML och Google Spreadsheets? Dela några av dina idéer och kanske kan vi försöka slutföra en av dina projektidéer i en framtida artikel!

Ryan har en kandidatexamen i elektroteknik. Han har arbetat 13 år inom automationsteknik, 5 år inom IT och är nu en applikationsingenjör. Han var tidigare chefredaktör för MakeUseOf och talade vid nationella konferenser om datavisualisering och har varit med på nationell TV och radio.