Šitame pavyzdyje sukursime pavyzdį, kai reikia nuskaityti taškinės lokacijas, nusakomas platuma ir ilguma. Šioje užduotyje konkrečiau nuskaitysime visų Maximos parduotuvių lokacijų meta-duomenis. Rezultatus norime grąžinti pagal tokią schemą:
| Laukelis | Aprašymas |
| lat<float>* | Platuma |
| lng<float>* | Ilguma |
| address<str> | Adresas |
| work_times<work_times> | Darbo laikai |
| meta<dict> | Visa kita papildoma objekto informacija |
Pirmiausia apsilankome maxima.lt puslapyje ir surandame puslapio skiltį, kurioje yra žemėlapis su pardutuvių sąrašo. Puslapio skiltis, kur galima rasti parduotuvių sąrašą yra čia: https://www.maxima.lt/parduotuves.

Suradę puslapį, einame į jo HTML ir suprantame struktūrą. Šiuo atveju mums aktualūs HTML div elementai kurių klasė yra “accordion-button”. HTML elemento atribituose saugomos reikalingos reikšmės.
Praktinis patarimas: ieškoti su CNTRL+F teksto, kuris numatoma kad turėtų būti. Šiuo atveju galima būtų ieškoti 54.0, nes taip prasideda ilgumos Lietuvoje.

Taigi galutinis norimas rezultatas yra šiuo formatu:
[{
'lat': 54.0159292,
'lng': 23.9781878,
'address': 'Čiurlionio g. 50, Druskininkai',
'name': 'Maxima',
'meta': {
'phone': '8 669 00883',
'times': 'I-VII 08:99-22:00',
},
},]
Pratimo tikslais dirbsime su lokalia išsaugota (nekintančia) parduotuvių puslapio versija.
Pirmiausia parašome reguliarų reiškinį. Kaip visuomet kintamas dalis žymime kaip bet kokių simbolių grupę. Aktualias dalis apskliaudžiame ir bus tarp rezultatų.
Ši programa grąžina rezultatus nestruktūrizuotu formatu:
[
('X520', 'collapseX520', '54.3972028', '24.0171333', 'X', 'Likiškėlių g. 7, Alytus', '8 669 00520', '["I-VII 08:00-22:00"]"', '', 'closed'),
('X974', 'collapseX974', '54.4128278', '24.0108944', 'X', 'Naujoji g. 17K, Alytus', '866900974', '["I-VII 08:00-22:00"]"', '', 'closed'),
..
]
Dabar mums liko eiti per elementus ir sudėti duomenis pagal standartinę lokacijų struktūrą, taip pat pakeisti tipus (iš eilučių į konkrečioje vietoje aktualius):
points = []
for shop_id, _, lat, lng, shop_size, address, phone, times, opening, status in results:
points.append({
'lat': float(lat),
'lng': float(lng),
'name': 'Maxima %s' % shop_size,
'id': shop_id,
'meta': {
'opening': opening,
'phone': phone,
'times': times,
'status': status,
},
})
print points
Ši programa išspausdins rezutlatus norimu formatu:
>[{
'lat': 54.3972028,
'lng': 24.0171333,
'meta': {
'status': 'closed',
'phone': '8 669 00520',
'times': '[I-VII 08:00-22:00]',
'opening': ''
},
'name': 'Maxima X',
'id': 'X520',
},]
Galutinis programos kodas atrodys taip:





