Грабуємо погоду з
Грабуємо погоду з Gismeteo.ru
Я вже писав, як правильно грабувати сайти. Як приклад інформації, яку потрібно грабувати з інших сайтів, я наводив погоду. Ось вирішив написати статтю, де розповім як можна отримати погоду із сайту gismeteo.ru.
Я грабуватиму RSS з цього сайту. Це просто та швидко.

Грабуємо RSS gismeteo.ru
Сніппет граббера Gismeteo для MODx
RSS - це технологія, призначена не тільки для того, щоб користувач міг стежити за великою кількістю сайтів, не сходячи з місця. Ця технологія надає зручні можливості обробки програмним способом.
Приступаємо до роботи
Для початку нам потрібно отримати дані з сервера gismeteo.ru. Нам знадобиться RSS-стрічка погоди у Москві.
Тепер вся стрічка знаходиться у змінній $file.
Тепер у мене непереборне бажання розбити нашу стрічку на item-и - одиниці інформації в потоці. Для цього скористаємося нескладним регулярним виразом:
preg_match_all("#(.*?) #is", $file, $items);
Тепер у масиві $items лежить вміст кожної одиниці інформації з гісметео.
Тепер потрібно пробігтися по кожному ітему і видерти дані, які нам потрібні. Я це робив так:
foreach($items[1] as $item) #отримуємо заголовок preg_match("#(.*?) #is", $item, $title); #відрізаємо слово "Москва", тож зрозуміло) $title = str_replace("Москва: ", "", $title[1]);
#Шукаємо цифри в заголовку. Це буде дата. preg_match("#(\d+)#", $title, $date); $date = $date[1];
# Висмикуємо текст опису. preg_match("#(.*?) #is", $item, $descr); #Відкидаємо все, що за температурою (тиск, вітер та ін.) #Якщо ця інформація теж потрібна, то можна вбити цей рядок. $descr = preg_replace("#(\d\.\.-\d С).*#i", "$$1", $descr[1]);
Тепер, коли наш скрипт відпрацює, ми отримаємо файл gismeteo.cache, в якому зберігатиметься те, що нам потрібно. Тепер, щоб вставити погодний інфоблок в код сайту, потрібно зробити лише це:
Оновлювати наш кеш можна за chron. Зазвичай, хостинги підтримують chron, можна встановити оновлення кешу два — чотири рази на добу. Більше — немає сенсу.
А тепер увага, питання на посидючість.
Чому наше кешування нікуди не годиться і як його можна покращити? Відповідь можна знайти у моїй статті "Як правильно грабувати сайти".
Якщо ви не хочете знатися на тонкощах грабінгу - ви можете замовити грабер сайту у мене. Грабер, подібний до того, що описаний у статті буде коштувати зовсім не дорого.