Šiame pavyzdyje pereisime variantą, kai duomenys HTML yra jau struktūrizuoti, t.y. išsaugoti JSON formatu.
Šis pavyzdys yra mokomaisiais tikslais ir nėra pilnai pabaigtas. Galite patys pabaigti pavyzdį ir patikrinti savo sprendimą siųsdami duomenis per API (užduoties nr. yra 5).
Tipiniu atveju HTML galima rasti Javascript gabaliuką, kuriame išsaugomi duomenys kintamajame. Tokio būdo technologinis privalumas, kad atkrovus puslalpį visi reikalingi duomenys jau turimi.
Pavyzdys. Norime struktūrizuotai nuskaityti butų lentelę iš “Strazdelio namų” puslapio, kuris yra HTML/JSON klasikinis pavyzdys.

Standartiškai mokomaisiais tikslais naudosime nekintančią lokalią puslapio pilną kopiją.
Atsidarę puslapio HTML kodą, galime nesiunkiai identifikuoti iš kur imami duomenys:

Šiuo atveju duomenis saugomi kintamajame “map_objects” – struktūrizuotu sąrašu. Pirmiausia pasirašykime reguliarų reiškinį, kuris padėtų paimti struktūrizuotą objektą aprašančią teksto dalį ir ją konvertiojamą į pythono objektą naudodami standartinę JSON.loads funkciją:
rg = re.compile('var map_objects = (.*?);')
results = rg.findall(content)
data = json.loads(results[0])
Šiame pavyzdyje žinome kad rasime tiksliai vieną rezultatą, dėl to kreipėmės į nulinį elementą. Pilna programa atrodo taip:
Galutiname variante dar reikėtų transformuoti puslapyje naudojame butų lentelės struktūrą į užduotyje aprašyta duomenų struktūrą (laukelių pavadinimai, tipai ir pan.). Pastebėkite, kad tipiškai tokiu būdu dažnai būna šiek tiek mažiau darbo, nes nebereikalinga transformuoti tipų iš eilučių (string) į reikiamus.
Šiame pavyzdyje tipai būtų deja dar neteisingi. Pvz. kainos laukelis grąžina tekstinę reikšmę, nors turėtų būti realusis ar sveikasis skaičius.





