23 августа (обновлено 06 мая)

Универсальный парсер для Joomla

Сегодня последний день не только этого года, но и месяца. поэтому, дабы не портить статистику я все-таки собрался написать здесь небольшую статью.
Думаю, что теоретические и практические записи лучше чередовать или, по крайней мере, не увлекаться теорией, так как это не всем интересно, как показывает практика.

Контент сайта - его основная составляющая, и не всегда возможно его своевременно обновлять (сей блог тому пример), однако нельзя разочаровывать своих читателей\посетителей устаревшими данными. Зачастую для этого используются механизмы чтения и вывода лент новостей других сайтов; некоторые проекты даже предоставляют APi для этого.
Однако речь пойдет в первую очередь, о тех проектах которые не имеют никаких инструментов для экспорта.

Специально для этого я написал компонент com_auto или TJ-Parser, позволяющий извлекать любую часть стороннего сайта (используя синтаксис селекторов jQuery), а также исключать из извлеченного блока, с использованием того же синтаксиса.
Все это производится на серверной стороне, а чтобы не напрягать сторонний сервер, осуществляется кеширование извлекаемой страницы и, при желании, и всех изображений.
Также есть небольшие "плюшки" в виде возможности открытия ссылок из извлекаемого блока в модальном окне joomla (стандартный на motools) в iFrame, а также в возможности добавить якорную ссылку на открываемую страницу в фрейме.

Joomla 3.х
Компонент совместим с Joomla 3.x,
Пока присутствует только русская локализация, английская будет добавлена чуть позже.

Скачать старую версию

UPD 23.08.2015:


Рад сообщить, о новой версии TJ-Parser. Этот компонент позволяет очень просто парсить кусочки со сторонних сайтов, используя при этом синтаксис селекторов jQuery.
Была проделана большая работа, а именно:

  • исправлены основные недочеты прошлой версии
  • полностью переработана работа с кешем
  • исправлена работа с конфигурациями компонента

 

Demo Download

Комментарии  

Лик19 февраля 06:02
Joomla 3.4.8 Strict Standards: Declaration of autosController ::display() should be compatible with JControllerLega cy::display($ca chable = false, $urlparams = Array) in /home/u98211745 9/public_html/a dministrator/co mponents/com_au to/controller.p hp on line 17

И аля-улю, не работает...
Tod19 февраля 07:02
Лик, используйте последнюю версию по ссылке "Download" tj-s.ru/.../com_auto.zip
а не старую версию для Joomla 2.5
Борис27 февраля 03:02
ДД! У меня Joomla 3.4.5. Скачал с tj-s.ru/.../com_auto.zip и выдает:
Strict Standards: Declaration of autosController ::display() should be compatible with JControllerLega cy::display($ca chable = false, $urlparams = Array) in /home/.../publi c_html/administ rator/component s/com_auto/cont roller.php on line 17
Tod27 февраля 03:02
Борис
проблема исправлена. версия обновлена до 2.0.1
Коля08 марта 11:03
Извините и можно ссылку на 2.5
Антон13 марта 01:03
Подскажите пожалуйста как узнать - какой ID блока для извлечения?
Tod13 марта 01:03
Антон
Используйте инспектор элементов (Дополнительные инструменты/Инс трументы разработчика), F12 в большинстве браузеров
Антон13 марта 02:03
Цитирую Tod:
Антон
Используйте инспектор элементов (Дополнительные инструменты/Инструменты разработчика), F12 в большинстве браузеров
а на какой странице конкретно? в материале, в к категории с материалами или где? Я пробовал ставить различные ID но у меня перейдя по созданной ссылке com_auto выходит только: Page not found or defined incorrectly selector for parsing
Tod13 марта 02:03
Компонент парсит 1 страницу или ее фрагмент в рамках одного ItemId
Создайте новый пункт меню типа tj-parser и укажите желаемые конфигурации: адрес страницы для извлечения и селектор элементам для извлечения.
Александр08 июня 07:06
В первую очередь спасибо за компонент!

А теперь вопрос, сломал всю голову... Вот стоит парсер на странице kudaklin.ru/kino (парсит расписание кинотеатра с www.afisha.ru/.../3681 ) И источник и страница с выводом в кодировке utf8, в настройках парсера кодировка источника прописана utf8. Почему на странице результат парсинга выводится в ISO-8859-1? >
Лев04 ноября 02:11
ССылку обрезает
то есть блок выводит со ссилками но когда на ссылке нажимаю ошибка 404
Со своево же сайта хочу новости вывести на главном. что делать ?