Google Sheets: Apps Script - parsowanie strony kantoru Alior Bank

0

Witam mam problem,
jest taka oto stronka: Alior bank - kantor walutowy.

Chciałbym pobierać z niej dane o aktualnej cenie walut, "Excel Google" zapewnia możliwość pisania makr, skryptów
w czymś co jest lub bardzo przypomina JavaScript.

Zależy mi by jakimś sposobem pobrać cenę sprzedaży EUR, USD i GBP.
Stronę obsługują jakieś mechanizmy, więc nie wystarczy wczytać całej zawartości,
dane generują się w czasie rzeczywistym. Nie mam pojęcia jak się do tego dobrać.

Będę wdzięczny za sugestie, przykład czegoś co działa.
Pozdrawiam.

1

Nie uzywaj frontendu aliora tylko jakiegos API

Mozesz np. zrobic reverse engineering i zobaczyc skad ten front bierze dane.

4

Do wymiany walut masz gotowe API: https://www.aliorbank.pl/aktualnosci/2021-02-22-API-Premium-wymiana-walut-.html

W konsoli przeglądarki mozna też znaleźć taki request: https://systemkantor.aliorbank.pl/forex/json/current
Co zwraca chyba to co chcesz.

{"currencies":[{"currency1":"PLN","currency2":"EUR","quantity":1,"sell":"4,6622","buy":"4,6243","direction":1,"faulty":false},{"currency1":"PLN","currency2":"USD","quantity":1,"sell":"4,3489","buy":"4,3156","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"CHF","quantity":1,"sell":"4,5411","buy":"4,5033","direction":1,"faulty":false},
...
...
...
faulty":false}],"lastUpdate":"Apr 26, 2022 02:24:43"}

Do bieżących masz na ich stronie gotowy plik:
https://www.aliorbank.pl/exchange-rates/print/csv?tableNumber=20220425170614&content=206fb8d8-89e5-4ee9-9756-01320da68cbc

Bieżącą nazwę możesz otrzymać parsując HTML strony: https://www.aliorbank.pl/dodatkowe-informacje/informacje/kursy-walut.html

fragment:

<div class="small-12 small-text-left medium-text-right">
	<a class="download-file" href="/exchange-rates/print/csv?tableNumber=20220425170614&content=206fb8d8-89e5-4ee9-9756-01320da68cbc">Zapisz do CSV</a>
	<a class="download-file get-pdf" href="/exchange-rates/print/pdf?tableNumber=20220425170614&content=206fb8d8-89e5-4ee9-9756-01320da68cbc">Zapisz do PDF</a>
</div>
0

Dziękuje za wyczerpującą odpowiedź, myślałem o API - nie wiem na razie jak tam się dopiąć. Trzeba zrobić kolejne konto, czego chciałem uniknąć. Strona z tabelką jest bardzo fajna, tyle że nie o te informacje mi chodzi. Zależy mi na sparsowaniu pierwszej stronki pododanej w linku o ile to możliwe.

Pozdrawiam ciepło.

0

Nie wiem czy Ci to pomoze ale w App Scripts mozesz wysylac tequesty i parsowac je odpowiednio zeby wystawic w Sheetsach.
Inna opcja ktora ja stosuje to App Script z Community Connector dla Data Studio.

1
Pangeon napisał(a):

Zależy mi na sparsowaniu pierwszej stronki pododanej w linku o ile to możliwe.
nie o te informacje mi chodzi.

Raczej o te Ci chodzi bo właśnie ze strony, którą podałeś pochodzą requesty:

  1. https://systemkantor.aliorbank.pl/forex/json/current
  2. https://systemkantor.aliorbank.pl/forex/searchParams

Zatem albo są to dobre dane albo sam nie wiesz o jakie informacje Ci chodzi :-)

screenshot-20220430091850.png

To wynik w JSON:

{"currencies":[{"currency1":"PLN","currency2":"EUR","quantity":1,"sell":"4,7142","buy":"4,6341","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"USD","quantity":1,"sell":"4,4731","buy":"4,3946","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"CHF","quantity":1,"sell":"4,5946","buy":"4,5154","direction":1,"faulty":false},{"currency1":"PLN","currency2":"GBP","quantity":1,"sell":"5,6214","buy":"5,5355","direction":1,"faulty":false},{"currency1":"PLN","currency2":"AUD","quantity":1,"sell":"3,1707","buy":"3,0908","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"CAD","quantity":1,"sell":"3,4905","buy":"3,4107","direction":1,"faulty":false},{"currency1":"PLN","currency2":"CZK","quantity":1,"sell":"0,1932","buy":"0,1866","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"DKK","quantity":1,"sell":"0,6378","buy":"0,6194","direction":1,"faulty":false},{"currency1":"PLN","currency2":"HUF","quantity":100,"sell":"1,2563","buy":"1,2155","direction":1,"faulty":false},{"currency1":"PLN","currency2":"JPY","quantity":100,"sell":"3,4466","buy":"3,3820","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"NOK","quantity":1,"sell":"0,4796","buy":"0,4656","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"SEK","quantity":1,"sell":"0,4583","buy":"0,4445","direction":1,"faulty":false},{"currency1":"PLN","currency2":"ILS","quantity":1,"sell":"1,3604","buy":"1,3111","direction":1,"faulty":false},{"currency1":"PLN","currency2":"BGN","quantity":1,"sell":"2,4337","buy":"2,3479","direction":1,"faulty":false},{"currency1":"PLN","currency2":"RON","quantity":1,"sell":"0,9817","buy":"0,9084","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"TRY","quantity":1,"sell":"0,3548","buy":"0,2422","direction":-1,"faulty":true},{"currency1":"PLN","currency2":"THB","quantity":1,"sell":"0,1332","buy":"0,1255","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"HKD","quantity":1,"sell":"0,5741","buy":"0,5560","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"HRK","quantity":1,"sell":"0,6273","buy":"0,6088","direction":-1,"faulty":false},{"currency1":"PLN","currency2":"MXN","quantity":1,"sell":"0,2376","buy":"0,1968","direction":1,"faulty":true},{"currency1":"PLN","currency2":"ZAR","quantity":1,"sell":"0,2881","buy":"0,2727","direction":-1,"faulty":false},{"currency1":"USD","currency2":"EUR","quantity":1,"sell":"1,0655","buy":"1,0436","direction":1,"faulty":false},{"currency1":"USD","currency2":"GBP","quantity":1,"sell":"1,2700","buy":"1,2463","direction":1,"faulty":false},{"currency1":"CHF","currency2":"EUR","quantity":1,"sell":"1,0372","buy":"1,0158","direction":-1,"faulty":false},{"currency1":"CHF","currency2":"USD","quantity":1,"sell":"0,9839","buy":"0,9629","direction":-1,"faulty":false},{"currency1":"CHF","currency2":"GBP","quantity":1,"sell":"1,2406","buy":"1,2083","direction":1,"faulty":false},{"currency1":"GBP","currency2":"EUR","quantity":1,"sell":"0,8481","buy":"0,8283","direction":-1,"faulty":false}],"lastUpdate":"Apr 30, 2022 09:21:45"}
0

Super o to chodziło, teraz mi pójdzie łatwiej w napisaniu skryptu. Dziękuje :)

image

Skorzystałem z poradnika: 1a.) Use Google Apps Script

Trochę na okrętkę, bo nie miałem czasu tworzyć koła od początku, ale to działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1