IKEA

Česká IKEA je nejdražší. V Německu stojí stejná pohovka i o 16 tisíc méně. Polsko je ještě výhodnější

IKEA se v Česku těší takové oblibě, že si může dovolit posadit cenu výš než u sousedů. Poláci v modrožlutém nakupují levněji, to je známá věc, ale překvapí, že se Čechům vyplatí zajíždět i do bohatšího Německa.

V této infografice najdete cenové rozdíly jednotlivých kategoriích produktů v německém a polském (klikněte) obchodu IKEA oproti Česku.

Německá IKEA je v průměru o 11 % levnější než česká, nejvýraznější cenový rozdíl najdou zákazníci u produktů spojených s praním a čištěním, přibližně 20 %. Jde nejen o pračky a sušičky, ale celou řadu úklidových doplňků či pomůcek.

S Polskem je srovnání ještě jednoznačnější. Žádná z 18 kategorií produktů tam není dražší než v Česku a v průměru tam zákazník zaplatí o 20 % méně.

Proč o tomto tématu píšeme na Živě? Kolegům z webu E15.cz, na kterém vyšel tento článek, jsme pomáhali při jeho přípravě. Ceny v obchodech IKEA jsme stahovali automatickým skriptem a přišlo nám zajímavé popsat, jak jsme to udělali:

Jak jsem zjišťoval ceny v IKEA

Marek Lutonský

Při prvním pokusu jsem se snažil dobrat k produktům přímo na českém webu obchodu. Chtěl jsem projít jednotlivé kategorie a stáhnout z nich veškeré zboží, které se na stránkách nachází.

Web ale nemá klasické stránkování, seznamy produktů se dočítají postupně, a to je při scrapingu trochu komplikace. Neumím to. Z prvních stránek kategorií jsem i tak stáhl asi tři tisíce položek, ale chtěl jsem to udělat přesněji.

Začal jsem proto hledat tzv. sitemapu. To je soubor XML, kterým weby vyhledávačům strojově čitelnou formou předkládají přehled stránek k indexování. Našel jsem ji a v ní čtyři velké soubory XML s přehledem všech produktových stránek českého e-shopu. Haleluja!

Pro stahování používám R, zpracoval jsem v něm proto čtyři XML a získal 22 396 URL odkazujících na produktové stránky českého e-shopu. Na každou z nich jsem následujícím skriptem sáhnul, stáhnul ji a vytáhnul z HTML kódu informace: cenu, název a popis produktu, první a druhou úroveň kategorie.

for (n in 1:nrow(products)) {
  
  print(paste0(n, "/", nrow(products), " - ", sub("https://www.ikea.com/cz/cs/p/", "", products[n, url.cz], fixed = T)))
  
  temp.page <- read_html(products[n, url.cz])
  # products[n, url.cz]
  
  if (temp.page %>% html_nodes(xpath = '//*/h1') %>% html_text() != "Výrobky") {
    
    # Průjezd 1, běžná cena
    temp.price <- temp.page %>% html_nodes(xpath = '//*/span[contains(@class, "pip-temp-price-module__current-price")]//span[@class = "pip-temp-price__integer"]') %>% html_text()
    temp.price <- sub(" ", "", temp.price, fixed = T)
    temp.price <- as.integer(temp.price)
    
    # Průjezd 2, žluté ceny
    if (length(temp.price) == 0) {
      temp.price <- temp.page %>% html_nodes(xpath = '//*/em[contains(@class, "pip-temp-price-module__current-price")]//span[@class = "pip-temp-price__integer"]') %>% html_text()
      temp.price <- sub(" ", "", temp.price, fixed = T)
      temp.price <- as.integer(temp.price)
    }
    
    if (length(temp.price) > 0) {
      products[n, price.cz := temp.price]
    }
    
    rm(temp.price)
    
    temp.title <- str_trim(temp.page %>% html_nodes(xpath = '//*/h1//span[contains(@class, "pip-header-section__title--big")]') %>% html_text())
    products[n, title.cz := temp.title]
    rm(temp.title)
    
    temp.description <- temp.page %>% html_nodes(xpath = '//*/h1//span[@class = "pip-header-section__description-text"]') %>% html_text()
    products[n, description.cz := temp.description]
    rm(temp.description)
    
    
    temp.cat1 <- temp.page %>% html_node(xpath = '//*/ol[@class = "bc-breadcrumb__list"]/li[2]/a/span') %>% html_text()
    products[n, cat1 := temp.cat1]
    temp.cat2 <- temp.page %>% html_node(xpath = '//*/ol[@class = "bc-breadcrumb__list"]/li[3]/a/span') %>% html_text()
    products[n, cat2 := temp.cat2]
    rm(temp.cat1, temp.cat2)
    
    rm(temp.page)
    
    if (n %% 1000 == 0) {
      save.image("Ikea, porovnání cen.RData")
    }    
  }
  
  Sys.sleep(2)
}

Při stahování je slušné oběť příliš nepřetěžovat, mezi každým dotazem jsem měl proto několikasekundový timeout. Skript jsem pustil přes noc, běžel asi dvanáct hodin a další den měl v databázi 22 tisíc produktů IKEA s českými cenami.

Už před tím jsem zjistil, že když v české URL změním jazykovou část řetězce /cz/cs/ na /de/de, stránka se přesměruje do německého e-shopu. Tím jsem hned měl německé adresy a další půlden z nich upraveným skriptem stahoval jejich ceny. Některé zboží v německém obchodě nebylo, získal jsem ale 17 381 cen.

Následoval stejný postup pro polský e-shop, kde zase stačilo v URL nahradit jazykový řetězec za /pl/pl/. Výsledkem bylo 20 051 společných produktů.

Pak to bylo už jednoduché: podle aktuálního kurzu převést ceny v eurech a zlotých na české koruny, spočítat absolutní a relativní rozdíly a podívat se na získaná data z různých úhlů. Pro kolegy z E15 jsem připravil tuto tabulku jako zdroj pro jejich článek, který najdete na webu E15.cz.

Na dalších listech článku najdete podrobné výsledky s ukázkami zboží s největšími cenovými rozdíly.

Diskuze (97) Další článek: Lednový Computer pro hráče: dva velké testy levných herních monitorů a přesných myší

Témata článku: , , , , , , , , , , , , , , , , , ,