There are no translations available.
У наш час надважливо максимально швидко отримувати нову інформацію. Для цього використовують різні системи та будують складні комплекси.
В даній статті розповім про оригінальний спосіб моніторингу змін на сайті та своєчасному інформуванні про ці зміни.
Наприклад, Ви шукаєте квартиру для оренди. Тут все просто, хто перший домовився – той і орендує. Щоб першим домовитись, треба першим зателефонувати, тобто як найраніше дізнатися про оголошення.
Сервіс являє собою php-скрипт, який запускається у UNIX-системах за допомогою демона cron кожні N хвилин. В свою чергу php-скрипт перевіряє сторінку на появу нового контенту та, у випадку появи нового оголошення, генерує дзвінок через AsteriskIP-PBX.
Найбільша база квартир на даний момент знаходиться на сайті Slando. Нехай у нашому випадку необхідно знайти квартиру лише від власниківта в межах від 2300 грн. до 3200 грн.
Продивившись HTML-код сторінки можна помітити, що самі оголошення починаються з тегу <divclass=”ad” >:
Тобто, для того щоб вилучити саму об`яву з коду сторінки, нам потрібно знайти текст «<divclass=”ad” >» та після цього знайти четвертий елемент «</div>» та взяти підрядок між цими двома позиціями.
Код php:
Тут краще не використоувати відносні шляхи. Перед запуском скрипта треба створити пустий файл /tmp/nedvizh/new.html
Змінна $data містить у собі текст для створення call-файлу, що потім поміщається у /var/spool/asterisk/outgoing/.
Далі перейдемо до налаштування Asterisk.
У файл /etc/asterisk/extensions.conf додамо наступні рядки:
Mobile/MTS/ – це шлюз через який з`єднувати дзвінок. Я користувався модулем для Asterisk “chan_mobile”, який дозволяє задіяти мобільний телефон як GSM шлюз.
Більш детальну інформацію щодо Asterisk можна знайти на сторінці проекту.
Далі налаштуємо авто запуск скрипта:
від імені користувача root виконаємо команду
#crontab –e
Та добавимо наступні рядки:
*/5 8-22 * * * /usr/bin/php-f/tmp/nedvizh/Check_price.php>/tmp/nedvizh_error
Це означає, що кожні 5 хвилин з 8 до 22 години треба запускати скрипт, а його вивід перенаправляти у файл /tmp/nedvizh_error.
Це й усе! Я лише виклав ідею і сподіваюсь, що комусь це стане в нагоді.
Автор Андрій Третьяков, магістрант НТУУ “КПІ” |