Úkol druhý: XPath

Řešení druhého úkolu v kurzu ISKM55 Nástroje a metody datové analytiky.

I. Dynamický seznam

Zadání

Vytvořit v Tabulkách Google pomocí XPath dynamický seznam top 48 mobilních telefonů podle Heureka.cz, který obsahuje název, cenové rozpětí a hodnocení.

Výstup

Cesta k názvu prvního (top 1) mobilního telefonu vypadá takto:

/html[@class='js']/body/div[@class='scope-essentials-v8.5.0 scope-category-search']/div[@id='root']/div[@class='c-offscreen c-offscreen@lteLine']/div[@class='o-wrapper o-wrapper--fill-medium-margin l-category-search']/div[@class='l-category-search__wrapper']/main[@class='l-category-search__content']/section[@class='l-products']/div[@class='l-products__container c-product-list o-wrapper__overflowing@lteLine is-not-fetching']/ul[@class='c-product-list__items']/li[@class='c-product-list__item'][1]/section[@class='c-product']/div[@class='c-product__container']/div[@class='c-product__info']/div[@class='c-product__content']/h3[@class='c-product__title']/a[@class='c-product__link']Code language: JavaScript (javascript)

Dá se zjednodušit až na zápis:

//h3[@class='c-product__title']/a[@class='c-product__link']Code language: JSON / JSON with Comments (json)

Obdobně lze získat cenové rozpětí:

//a[@class='c-product__price']Code language: JSON / JSON with Comments (json)

A také hodnocení:

//span[@class='c-star-rating__rating-value u-base']Code language: JSON / JSON with Comments (json)

Heureka.cz stránkuje po 24 výsledcích, přičemž číslo stránky nese v URL parametr f.

V Tabulkách Google jsem použil funkci IMPORTXML.

Výsledné vzorce „stahují data“ z prvních dvou stránek — tedy pro prvních 48 výsledků.

Takto vypadá vzorec pro název:

={IMPORTXML("https://mobilni-telefony.heureka.cz/?f=1";"//h3[@class='c-product__title']/a[@class='c-product__link']"); IMPORTXML("https://mobilni-telefony.heureka.cz/?f=2";"//h3[@class='c-product__title']/a[@class='c-product__link']")}Code language: JavaScript (javascript)

Takto pro cenové rozpětí:

={IMPORTXML("https://mobilni-telefony.heureka.cz/?f=1";"//a[@class='c-product__price']"); IMPORTXML("https://mobilni-telefony.heureka.cz/?f=2";"//a[@class='c-product__price']")}Code language: JavaScript (javascript)

A podobně pro hodnocení:

={IMPORTXML("https://mobilni-telefony.heureka.cz/?f=1";"//span[@class='c-star-rating__rating-value u-base']"); IMPORTXML("https://mobilni-telefony.heureka.cz/?f=2";"//span[@class='c-star-rating__rating-value u-base']")}Code language: JavaScript (javascript)

Tento postup má drobný problém:

Ne všechny produkty mají zadaná hodnocení.

Pokud produkt nemá zadané hodnocení, řádek se při importu bohužel nepřeskočí, takže od prvního produktu bez zadaného hodnocení jejich výpis v tabulce nelícuje s názvem.

A nevím, jak to vyřešit. 🤷‍♂️

Výsledný dynamický seznam se aktualizuje každých 5 min:

Původní tabulka je k náhledu tady.

II. Nástroje

Zadání

Vyzkoušejte jeden z nástrojů Voyant ToolsGeneea.

Výstup

V nástroji Voyant Tools jsem zkusil analyzovat korpus výroční zprávy Masarykovy univerzity.

Zaujala mě rychlost analýzy i vykreslení vizualizací — v dobrém, zchroustat dokument o 182 stránkách trvalo malou chvíli.

Napadají mě konkrétní use casy:

  • rychlá analýza právě výročních zpráv (co jsou ta klíčová témata?),
  • zběžné kódování přepisů rozhovorů (jaký je základní kontext?),
  • podrobné lingvistické zkoumání jazykových korpusů (jak se liší?),
  • ověření čitelnosti textu (jaká je hustota slovní zásoby, kolik slov má průměrná věta?).