Hämta data från webben med google spreadsheet

Permalänk
Medlem

Hämta data från webben med google spreadsheet

Hej,

Jag sitter och nördar ner mig lite med google spreadsheet just nu och försöker få till en kopia av min excelfil över aktier och fonder och annat som jag pulat med länge nu. Men Excel börjar bli rätt trögt att starta bara för att det är sådär lagom bra på att hämta data från andra hemsidor. Tyvärr använder den sig av en gammal version av IE som fungerar sådär 2020.

Men, till saken. Det jag behöver hjälp med här är att fatta vad fasen jag ska skriva in i google spreadsheet för att få till rätt resultat.
Jag har letat och läst i guider och testat mig fram nu i flera timmar och har börjat erkänna att jag kört fast. Jag har inte läst varken webbdesign eller programmering på typ 15 år och inte pillat nåt alls med det sedan dess så jag är sämre än nybörjare.

Det jag försöker göra är att kopiera in den markerade raden i bilden nedan i spreadsheetet. Och det enda jag lyckats reda ut är hur jag hittar den i inspector-funktionen i Firefox...

https://imgur.com/UAll3QM

Jag har lyckats läsa mig till att jag bör göra något liknande detta: =importxml(A1,"//div[@class='intro-box-wide']//li/a/@href") där A1 är länken till exempelvis "Volvo B" på Avanza https://www.avanza.se/aktier/om-aktien.html/5269/volvo-b
Det där är bara ett utklipp ur denna guiden: https://www.distilled.net/blog/distilled/guide-to-google-docs...
Hade hoppats på att =importxml(A1,"//li") skulle funkat men icke. Gissar på att det är mycket mer som ska skrivas.

Är det någon här som är kunnig på webbdesign/programmering och förstår sig på vad fasen jag ska skriva efter " =importxml(A1, " för att få till det?

Grymt tacksam för all hjälp

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem

I ditt fall så är det <div class=content> du är ute efter tror jag.

=IMPORTXML(A1, "//div[@class='content']//li")
där A1 är
https://www.avanza.se/aktier/om-aktien.html/5269/volvo-b

Funkar i mitt testdokument.

Permalänk
Medlem
Skrivet av Zweibach:

I ditt fall så är det <div class=content> du är ute efter tror jag.

=IMPORTXML(A1, "//div[@class='content']//li")
där A1 är
https://www.avanza.se/aktier/om-aktien.html/5269/volvo-b

Funkar i mitt testdokument.

Menar du att =IMPORTXML(A1, "//div[@class='content']//li") funkar rätt av för dig? Jag får upp error då. Eller menar du att det borde stå nåt annat än content? Annars fattar jag inte vad jag gör för fel.

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem
Skrivet av Colery:

Menar du att =IMPORTXML(A1, "//div[@class='content']//li") funkar rätt av för dig? Jag får upp error då. Eller menar du att det borde stå nåt annat än content? Annars fattar jag inte vad jag gör för fel.

https://docs.google.com/spreadsheets/d/15P6udJ2l3BRhksNQvPnTH...
Länken i cell A1, formeln i cell A3 i mitt test exempel här. Borde funka rakt av i min erfarenhet.

Permalänk
Medlem
Skrivet av Zweibach:

https://docs.google.com/spreadsheets/d/15P6udJ2l3BRhksNQvPnTH...
Länken i cell A1, formeln i cell A3 i mitt test exempel här. Borde funka rakt av i min erfarenhet.

Men vafasen... jag har skrivit och gjort exakt samma i mitt dokument. Där fungerar det inte ><
Ska prova att börja om helt och se om det fungerar bättre. Tack i vilket fall. Då vet jag hur jag ska göra även om det i dagsläget fungerar sådär

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem

Så jäkla skumt. För när jag startar ett nytt dokument igen så fungerar det fortfarande inte.
Men så testade jag att skriva ett ";" istället för ",". Och då fungerade det helt plötsligt... fattar inte hur det kan vara olika för oss...

=IMPORTXML(A1; "//div[@class='content']//li")

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem

Bra att du fick det till att funka, i mitt dokument så konverteras ; till , i formler. Skulle gissa på att det är språkinställningar som spökar, vill minnas att jag har haft problem med det.

Permalänk
Medlem

Aja, huvudsaken är att jag fick det till att funka. Tack för det!
Men jag stötte på ett problem till som jag inte riktigt vet hur jag ska lösa.

Under två av raderna så skriver den ut väldigt mycket text istället för bara siffrorna. Den gör väl rätt i sak så sett men jag skulle behöva isolera siffrorna på något vis. Är det möjligt?

exempelvis: Utv. idag %-0,08 %
Jag vill isolera -0,08 så att det går att använda till vidare beräkningar. Lyckades gå ner på den nivån att den skriver ut: -0,08 % men det där jäkla %-tecknet förstör ju allt.

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem

Tror det är kommat eller mellanslaget som är problemet. Trixade runt med REGEX i mitt testdokument. D4 och E4 visar processen, E5 är en kombinerad formel, F4 och F5 är bara för att visa att det funkar. Det finns troligen bättre lösningar men detta är vad jag fick till att funka.
Grejerna i rad 8, specifikt E8 är ett exempel på hur du kan eliminera mellanslaget i ditt nuvarande resultat, kanske funkar utan att behöva ge dig in i dubbelformeln i E5.

I D4 använder jag REGEXTRACT för att extrahera nummer från A2 och kommaseparatorn. I E4 så konverterar jag kommatecknet till en punkt, vilket magiskt får mitt Google Sheets till att fatta att det är ett nummer och inte text. Har mitt satt till United Kingdom locale, osäker på hur stor roll det spelar.

Permalänk
Medlem
Skrivet av Zweibach:

Tror det är kommat eller mellanslaget som är problemet. Trixade runt med REGEX i mitt testdokument. D4 och E4 visar processen, E5 är en kombinerad formel, F4 och F5 är bara för att visa att det funkar. Det finns troligen bättre lösningar men detta är vad jag fick till att funka.
Grejerna i rad 8, specifikt E8 är ett exempel på hur du kan eliminera mellanslaget i ditt nuvarande resultat, kanske funkar utan att behöva ge dig in i dubbelformeln i E5.

I D4 använder jag REGEXTRACT för att extrahera nummer från A2 och kommaseparatorn. I E4 så konverterar jag kommatecknet till en punkt, vilket magiskt får mitt Google Sheets till att fatta att det är ett nummer och inte text. Har mitt satt till United Kingdom locale, osäker på hur stor roll det spelar.

Det här är ju guld, börjar se ganska bra ut nu. Inte så extremt mycket kvar innan jag är klar. Men hur löser man problematiken med + och minus då? Den behöver ju kunna visa minus i alla fall.

Visa signatur

Fractal North, Corsair AX860, ASUS TUF Gaming Z790-Plus WIFI, Intel Core i7-13700K, Noctua NH-U12A, Corsair 64GB DDR5 6000MHz, ASUS 4080 TUF Gaming, Kingston Fury Renegade 4TB M.2, Samsung 850 EVO 500GB M.2 + Corsair Force GT 240GB + 3st Mekaniska tot. 16TB

Permalänk
Medlem
Skrivet av Colery:

Det här är ju guld, börjar se ganska bra ut nu. Inte så extremt mycket kvar innan jag är klar. Men hur löser man problematiken med + och minus då? Den behöver ju kunna visa minus i alla fall.

Bör räcka med att lägga till [+|-] i början av REGEXTRACT formeln. Matchar plus eller minus och behåller det som med siffrorna.

Permalänk

Min Google sheet har slutat fungera mot Avanza. Någon som får det att fungera igen?