Доброго времени суток! Сейчас мы будем учиться писать парсер на PHP.
Вступление
Не буду сыпать терминами, а просто скажу - парсер это весч которая берёт к примеру новости с какого то сайта и копирует вам на сайт. Может быть и парсер контента, тот который копирует файлы.
Парсер, в отличие от грабера, копирует новости\статьи\файлы и т.д. к вам насовсем(пока вы их не удалите) и ваш сайт не будет зависеть от сайта-донора. Главное что бы сайт-донор работал в тот момент когда вы будете его парсить.
Парсер запускается один раз, потом его можно удалить или переделать, что бы спарсить другие новости\статьи\файлы и т.д.
Если хотите узнать о парсере подробнее, то воспользуйтесь гуглом, он вам поможет.
Итак, что мы будем парсить? Я решил далеко не ходить, поэтому парсить мы будем записи блога helltar.ru, вот так.
Небольшая оговорка: я буду писать парсер под мобильный движок JohnCMS - http://johncms.com, думаю он вам известен. Так же думаю все знают что helltar.ru начался именно с ДжонЦМС. Ну и приведу ещё пару аргументов:
- я НЕ буду использовать переменные или функции JohnCMS, поэтому вы без труда сможете допилить мой код под свой сайт или CMS;
- у ДжонЦМС хоть дизайн есть, если бы я писал так сказать на чистом PHP, т.е. без CMS, то был бы чёрный текст и белый фон, а не дизайн;
- у ДжонЦМС есть хорошая стандартная Библиотека, которая хорошо подходит под мои запросы в этом уроке. Если бы я писал без ЦМС, то пришлось бы ещё и библиотеку писать. Иначе куда бы мы записи парсили?
Ещё оговорка: если вы знаете азы PHP то думаю код парсера будет вам понятен. А если вы ещё и ранее писали Граберы, то вы точно должны понять код. Ну а если вы код не понимаете, то Sorry - я ничем не могу вам помочь.
И ещё оговорка: я буду парсить стандартными средствами PHP. Т.Е. я НЕ буду использовать различные библиотеки для парсинга, например - «PHPQuery», «Simple HTML DOM», «Zend DOM Query», «Nokogiri». Хотя соглашусь с теми, кто скажет что парсить с библиотеками удобнее, быстрее и лучше. Но дабы не замарачивать голову новичкам различными библиотеками и т.д., я не буду их использовать.