Грабуємо погоду з

Грабуємо погоду з 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, можна встановити оновлення кешу два — чотири рази на добу. Більше — немає сенсу.

А тепер увага, питання на посидючість.

Чому наше кешування нікуди не годиться і як його можна покращити? Відповідь можна знайти у моїй статті "Як правильно грабувати сайти".

Якщо ви не хочете знатися на тонкощах грабінгу - ви можете замовити грабер сайту у мене. Грабер, подібний до того, що описаний у статті буде коштувати зовсім не дорого.