Данный документ описывает принцип и настройку работы плагина для WP – ElSa grabber v 3.0 (плагин).
Плагин предназначен для копирования материалов с других сайтов (сайта – источник) на сайт где он установлен (сайт – приемник).
В числе возможностей плагина:
1. Парсинг RSS ленты сайта – источника и извлечение информации из нее.
2. Парсинг HTML страниц сайта – источника и извлечение информации из нее.
3. Закачка картинок с сайта – источника на сайт – приемник.
4. Поддержка разных кодировок текста.
5. Поддержка синтаксически неправильного HTML.
6. Импорт полученных данных на сайт – приемник.
7. Запуск по расписанию.
8. наглядное тестирование задания и средства отладки.
Принцип работы.
В административном меню плагина, создается задание на выполнение, в числе директив которого указываются параметры необходимые для выполнения процедуры парсинга (все параметры будут рассмотрены далее), после активации задания, плагин по расписанию, указанному в тексте задания выполняет перечень действий.
ВАЖНО!
Реализация выполнения заданий по расписанию не использует внутренние возможности WP, данная возможность реализуется за счет установки нового задания напрямую в CRON. Данный документ не рассматривает подробно процесс настройки демона CRON.
Системные требования.
PHP не ниже 5.2., операционная система любая, на которой крутится php, однако лучше всего подойдут nix системы, т.к. при работе на win возможны фельдопердозные глюки (на самом деле должно работать и на win, однако, когда речь идет о великом творение Майкрософта лучше оговориться.). Из числа расширений PHP крайне необходимы следующие: iconv, tidy, simplexml. Крайне желательно, хотя и не обязательно, иметь возможность менять параметр Time_limit (намек на то, что скорее всего, для работы плагина потребуется vds/vps сервер).
Установка.
Скачиваете архив плагина.
Закачиваете его к себе на сервер в папку – wp-content/plugins/ или в администраторском меню WP устанавливаете плагин как и многие другие плагины.
Активируете плагин.
В директории /wp-content создаете (по-умолчанию используется) папку «elsa» устанавливаете на нее права 777.
Добавьте в CRON файл runfromcron.php находящийся в корне папки с плагином и установите периодичность запуска раз в минуту.
На этом установка плагина завершена.
Изменение параметров плагина.
Есть только два параметра которые нужно установить самостоятельно, если установленные по умолчанию не подходят. Это абсолютный путь к директории куда плагин будет переписывать картинки, и путь к этой же директории но уже от корня сайта.
После того как вы установите свои параметры, не забудьте создать директорию и установите на не права 777.
Создание задания.
Задания являются ключевым моментом использования плагина. Вы можете создать не ограниченное количество заданий которые будут выполняться по расписанию. Логически, задание представляет собой набор правил парсинга RSS ленты сайта – источника. Для каждого источника информации следует создавать свое правило. Все поля, кроме поля информация, должны быть заполнены.
Поле:
Список заданий.
Список и управляющий компонент всех заданий зарегистрированных у плагина.
Значок:
— просмотр задания и тестирование.
— активация задания.
— дезактивация задания.
— редактировать задание.
— удалить задание.
Плагин умеет работать по расписанию, но это достигается не внутренними средствами WP, а путем прописывания специального скрипта в CRON.
Пример команды для CRON‘а — /usr/local/bin/GET http://ваш-сайт.com/wp-content/plugins/elsa/runfromcron.php. Периодичность запуска — каждую минуту.
Когда вы создаете задание то указываете период запуска, данное значение будет указывать скрипту когда нужно запускать выполнение задания, однако, само значение не очевидно указывает период, как может показать на первый взгляд. Дело в том, что запуск будет происходить только при условии, что остаток от деления текущего числа минут на параметр “Период запуска” будет равен нулю. Например:
1. При настройке CRON‘а вы указали, что запуск скрипта runfromcron.php должен происходить каждую минуту (а именно так и нужно делать!), а период запуска в задании стоит “30”, тогда задание будет выполняться когда целое число минут, текущего времени будет равно “30”, т.е. 0:30, 1:30, 2:30 и т.д.
2. При настройке CRON‘а вы указали, что запуск скрипта runfromcron.php должен происходить каждую вторую минуту, а период запуска в задании стоит “27”, тогда задание выполнится только тогда, когда число минут текущего времени будет 54, т.е. 0:54, 1:54, 2:54 и т.д.
3. При настройке CRON‘а вы указали, что запуск скрипта runfromcron.php должен происходить каждую пятую минуту, а период запуска в задании стоит “11”, тогда задание не будет выполняться вообще.
Отнеситесь внимательно к информации изложенной выше, не правильное понимание ее приведет к тому, что ваше задание не будет выполняться!
Вступление.
Для более подробного понимания механизма парсинга, будет лучше если вы ознакомитесь с спецификацией
Скорее всего, вам трудно будет составлять задания, если вы совсем не знакомы с принципами программирования. Знание программирования не обязательно, однако, данный навык существенно облегчит вам понимание процесса создания задания.
От слов к делу.
В тексте задания, единственная переменная которую не нужно объявлять заранее это %_ITEM_%, соответствует элементу
Т.к. RSS поток содержит, как правило, несколько элементов
Пример, правильно составленного задания:
Данный набор директив (назовем их так) будет выполнен для каждого элемента
После того как вы написали текст задания, проверьте, так ли оно работает как вам хочется, для этого в списке заданий кликните по кнопке — “просмотр задания” и в открывшемся окне нажмите кнопку — “тестировать”.
Синтаксис написания задания.
Каждое логическое действие должно заканчиваться знаком точки с запятой — “;”.
Параметры внутри функции разделяются запятыми — “,”.
В левой части выражения всегда! находится имя переменной, даже если функция не возвращает никакого результата, то все равно выражение начинается с имени переменной.
Имя переменной разделяется от функции знаком “=”.
Имя переменной начинается и заканчивается знаком “%”.
Имя функции всегда начинается со знака “_”.
Параметры функции передаются в скобках “()”.
Список функций.
_addMore(text, number)
Пример: %newtext%=_addMore(%oldtext%,500);
Функция добавляет в текст тег “more”.
Параметры:
text– текст в который нужно вставить тег
number — число знаков после которого нужно вставить тег.
Возвращает:
Возвращает текст с вставленным тегом.
_clearHtml(text)
Пример: %newtext%=_clearHtml(%oldtext%);
Функция удаляет из текста тег “
Параметры:
text — текст который должен быть очищен от блоков
Возвращает:
Новый вариант текста очищенный от блоков
_copy(var)
Пример: %newvar%=_copy(%oldvar%);
Копирует значение переменной var в переменную newvar
Параметры:
var — копируемая переменная
Возвращает:
Новую зарегистрированную переменную newvar
_dump(var)
Пример: %justname%=_dump(%var%);
Отображает содержимое переменной var в окне тестирования задания
Параметры:
var — имя переменной значение которой нужно проверить
Возвращает:
Не возвращает ничего
Возвращает содержимое елемента element_name из текущего
Параметры:
%_ITEM_% — зарезервированное название элемента
element_name — имя элемента RSS поторка значение которго нужно извлечь
Возвращает:
Содержимое element_name
_extHtml(text,xPath,encode,tag)
Пример: %str%=_extHtml(text,.//*[@id=‘pageContent’]/div);
Пример2: %str%=_extHtml(text,.//*[@id=‘pageContent’]/img,utf8,src);
Возвращает содержимое елемента указанного в xPath из переменной text
Параметры:
text — html текст из которго нужно извлечь значение данные
xPath — xPath-путь до нужных данных
encode — кодировка входящего текста (не обязательный параметр, по-умолчанию utf-8)
tag — указывается ечли нужно узнать не содержимое определенного элемента, а значение атрибута (не обязательный параметр)
Возвращает:
Содержимое xPath-пути или значение атрибута указанного в xPath-пути.
_get(url)
Пример: %text%=_get(http://google.com);
Возвращает содержимое файла указанного в url
Параметры:
url — Ссылка на нужный файл
Возвращает:
Содержимое файла
_iconv(text,incharset,outcharset)
Пример: %text%=_iconv(%old_text%,cp1251,utf-8);
Перекодирует перменную text из кодировки incharset в кодировку outcharset
Параметры:
text — Текст для перекодировки
incharset — Текущая кодировка переменной text
outcharset — Нужная кодировка
Возвращает:
Переменную text в новой кодировке
_insertPost(post_title,post_author,post_type,tags_input,post_category,post_content,post_date,post_name)
Пример: %IMP%=_insertPost(%title%,%author%,%type%,%tags%,%category%,%content%,%date%,%title%);
Создает новый пост.
Перед вставкой нового поста, функция проверят нет ли уже такого же поста в базе данных WP.
Проверка происходит по параметру post_title, только он один участвует в проверки на существование.
Т.е. если вы ранее такой же пост удалили в корзину то функция не станет вставлять его еще раз.
Параметры:
post_title — Заголовок нового поста
post_author — Автор материала нового поста
post_type — Тип поста (всегда используйте значение “post”)
tags_input — Теги нового поста перечисленные через запятую
post_category — Категория нового поста
post_content — Содержимое нового поста
post_date — Дата публикации нового поста
post_name — Имя нового поста (как правило совпадает с post_title. Из этого параметра формируется slug)
Возвращает:
Не возвращает ничего
_join(text,text1,text2,text3,…)
Пример: %text%=_join(%var1%,%var2%,%var3%,%var4%,…);
“Склеивает” части в одно целое
Параметры:
text,text1,text2,… — Кусочки из которых нужно получить одно целое
Возвращает:
“Склееную” строку
_join(text,text1,text2,text3,…)
Пример: %text%=_join(%var1%,%var2%,%var3%,%var4%,…);
“Склеивает” части в одно целое
Параметры:
text,text1,text2,… — Кусочки из которые нужно “склеить”
Возвращает:
“Склееную” строку
_loadFtp(url)
Пример: %img_url%=_loadFtp(%link_pict%);
Загружает в локальную папку удаленный файл
Параметры:
url — Ссылка на файл который нужно скопировать
Возвращает:
Путь к скопированному файлу если все прошло успешно. В случае любого сбоя, возвращает ссылку на файл uncopy.gif из папки images, которая расположенна в корне папки плагина.
_makeTag(tagname)
Пример: %newtag%=_makeTag(img);
Создает тег tagname
Параметры:
tagname — Тег html который нужно создать
Возвращает:
Возвращает строку —
_setAttr(tag,attrname=attrvalue)
Пример: %newtag%=_setAttr(%post_image%,alt=‘alt text for image’);
Добавляет к тегу tag новый атрибут attrname со значением attrvalue
Параметры:
tag — Тег html который нужно изменить
attrname=attrvalue — пара ключ=значение, где attrname — имя нового атрибута, а attrvalue — его значение
Возвращает:
Возвращает измененный тег
_setEncoding(text, charset)
Пример: %text%=_setEncoding(%old_text%,utf-8);
Добавляет! (не изменяет!) в тег мета тег http-equiv с указание кодировки.
Данная операция необходима, если кодировка не указанна у источника. Используйте эту функцию только если вы абсолютно уверенны, что text содержит html документ.
Параметры:
text — текст html документа
charset — кодировка
Возвращает:
Html документ с установленной кодировкой
_stripHTML(text)
Пример: %text%=_stripHTML(%old_text%);
Удаляет из text все зарезирвированные слова языка разметки Html.
Параметры:
text — текст html который нужно очистить от всех тегов
Возвращает:
Текст без html разметки
_strReplace(text,search,repalce)
Пример: %text%=_strReplace(%old_text%,слово1,слово2);
Заменяет в text последовательность search на repalce
Параметры:
text — изменяемый текст
search — что нужно поменять
repalce — на что нужно поменять
Возвращает:
Возвращает версию строки text в которой все вхождения search замененны на repalce
Мы, разработчики данного плагина искренне надеемся, что наш плагин будет вам полезен, а процесс его настройки не вызовет у вас особых проблем. На данный момент плагин бесплатный, трудно сказать, что ожидает его в будущем, станет ли он платным или нет, одно можно сказать с уверенностью, т.к. он уже обрел свою нишу в собственных проектах авторов, то развиваться он однозначно будет.
Мы будем вам искренне признательны, если в случае обнаружения ошибки в работе плагина, вы, вместо проклятия его разработчиков, опишите проблему и отправите нам на электронный ящик. Отправлять электронные письма нужно так же и в том случае, если у вас возникли любые вопросы по функционированию плагина или есть какое либо предложение по его дальнейшему развитию.
С наилучшими пожеланиями ElSa group.
football.tomsk.ru
2 Комментариев к Новый плагин — граббер для WP
shurupp
Ноябрь 21st, 2012 | 17:20
Уважаемые авторы плагина. Отличный плагин, большой потенциал, но увы оказался для меня слишком сложен. Сломал об него мозг. Скачал, поставил, наладил крон, завел задание, но не смог разобраться как настроить парсер для обработки целевого новостного сайта.
Вкратце моя задача такая: есть новостной сайт аналогичный newsland.ru, у него есть RSS, нужно его парсить и выкладывать у себя его контент с переодичностью 1 минута. Вобще ровно то же самое что делает Ваш плагин Elche_grabber, только сайт-источник контента другой.
Прошу помочь настроить, готов оплатить помощь. Мой skype — prodavator. Напишите мне плз. Спасибо
admin
Февраль 4th, 2013 | 04:48
Я больше не поддерживаю плагин. Пишите Савитову в со-авторстве с котором мы его написали. savitov.ru его сайт