Manual ver. 0.3 date 27.12.2008
Продукт предназначен для автоматического наполнения сайта контентом. Поддерживается синонимизация, встроен автоматический онлайн переводчик а также много других полезных функций.
Внимание Акция! До 01.01.2009 цена на версию 1.6 осталась прежней! Спешите! Не упустите свой шанс купить отличный софт по цене предыдущей версии!
Если Вы желаете приобрести плагин версии 1.6.х, Вы можете это сделать посетив наш магазин по адресу www.feedmaster.org
Система автонаполнения контентом FeedMaster 1.6.х
Как обновить скрипт с версии 1.5.x до 1.6?
Описание технологии уникализации контента наречиями.
Преимущества и возможности плагина (без особенностей последней версии)
Возможности предыдущей версии 1.4.x
Возможности предыдущей версии 1.3.x
Описание интерфейса системы FeedMaster 1.6.x
Сортировка по категориям в зависимости от наличия ключевиков
Иногда парсер не парсит ленту – в чем причина? Как будто он зависает.
У меня выдает ошибку : iconv()
Как составить сигнатуру для источника информации?
Оптимизация запуска скрипта. Управление нагрузкой. Настройка cron.
Типичная настройка-пример – грабим источник с RSS экспортом (Версия 1.5.x)
Настройка портатора – пробуем портировать целый сайт (Версия 1.5.x)
Google Translate переводчик в версии 1.6
Блок уникализации в версии 1.6
Какой должен быть формат базы синонимов?
А как запускать отдельные ленты?
Что значит «[text] => [cut length:4248]» в логе парсера?
двухсторонний переводчик на основе Google Translate
поддержка Wordpress MU
автоматическое создание категорий из данных в rss канале
рандомная вставка в букмарк системы
рандомная замена тэгов b на strong i на u
несколько URL в рамках одного парсинг правила
уникализатор: мешап абзацев, предложений, выжимка, вставка пробелов в словах
обработка опечатками
возможность запуска через крон отдельных лент
искать YouTube видео по названию публикации
Двоичный (бинарный, binary, bin) — режим для передачи картинок, исполняемых файлов, исполняемых cgi-скриптов и так далее.
Для обычного пользователя это скорее бесполезные сведения, но иногда они становятся очень актуальными. Например, в случае если вы загружаете на сервер картинку, где она оказывается испорченной и не показывается в браузере, хотя доступна через веб. Это случается когда файл с картинкой (jpg, gif, bmp, png,..), который является двоичным, передается на сервер не в двоичном, а в текстовом режиме. Как правило, это происходит из-за неправильной работы FTP-программы.
Текстовые файлы нельзя передавать в двоичном режиме, а двоичные файлы нельзя передавать в текстовом режиме. Вообще, FTP-программы по умолчанию должны сами определять, в каком режиме нужно передавать конкретные файлы. Однако, иногда они ошибаются и файлы загружаются неправильно. В этом случае придется настроить FTP-программу так, чтобы она правильно передавала нужные виды файлов.
Каждый вебмастер время от времени стыкается с проблемой уникализации контента. Хочу предложить решение разработанное нашей командой.
Решение состоит из двух частей:
Суть перового метода – если добавить перед прилагательным наречие, то смысл текста не нарушится, а вот структура шинглов, будет нарушена и тем самым контент будет уникализирован. Как известно «Яшка» вычисляет дублирование контента в Интернете используя в том числе алгоритм шинглов. В Интернете можно найти описание этого алгоритма. Замечу только, что если в текст предложения вставить новые слова, то такой текст для Яндекса становиться уникальным (ИМХО).
Таким образом мы интегрировали установку наречий перед прилагательными в отдельной версии плагина 1.5.x
В этой сборке предоставляется база прилагательных в количестве 78166 слов
Пример части базы прилагателных
длиннолицый
длинноногий
длинноносый
длиннополый
длиннорогий
длиннорукий
длинностволый
длинноствольный
длинноухий
длиннохвостый
длинношеий
длинношёрстный
а также база из 32 наречий. Таким образом в результате обработки текст остается приемлемо читаемым и в тоже время уникальным.
Второй метод – нами была отфильтрована база однозначных синонимов 7621 штук из общей базы синонимов, которая содержала более 48000 слов. Однозначные синонимы это синонимы, которые при замене не нарушают смысл предложения.
Пример базы однозначных синонимов
(’бездна’, 24126),
(’пропасть’, 24126),
(’бездоказательный’, 24127),
(’недоказанный’, 24127),
(’бездомный’, 24128),
(’бесприютный’, 24128),
(’бездыханный’, 24129),
(’мертвый’, 24129),
(’безжалостность’, 24130),
(’жестокость’, 24130),
(’безжалостный’, 24131),
(’беспощадный’, 24131),
(’жестокий’, 24131),
(’безжизненный’, 24132),
(’мертвый’, 24132),
(’беззаботный’, 24133),
(’беззаботливый’, 24133),
(’беззаконие’, 24134),
(’безправие’, 24134),
(’беззаконник’, 24135),
(’законопреступник’, 24135),
(’беззаконный’, 24136),
(’преступный’, 24136),
С помощью данного плагина возможно легко настроить самообновляющийся блог (новостной портал) на базе движка блога wordpress. Доступен ряд SEO функций при обработке импортируемого контента встроен автоматический переводчик на базе Google Translate а также синонимизация контента.
· Важно! сделали парсер статических страниц! теперь можно грабить контент практически с любого сайта без наличия rss/atom экспорта!
· работа через прокси: формат прокси 127.0.0.1:port
· установка user agent для каждой ленты
· автоматический импорт слов из названий категорий блога в сортировщик по ключевым словам
· запрет/активация хотлинкования картинок с с сайта источника (по умолчанию, если папка для сохранения картинок доступна, то картинки загружаются на хост, если по какойто причине скрипт неможет загрузить картинку, он ее хотлинкует если хотлинк включен, и если хотлинк отключен, то картинки их контента просто удалятся).
· спецсимволы такие как ’ интерпретировались предыдущей версией плагина как “?”, исправлено их корректное отображение.
· исправлен фильтр подстановки ссылок для определенных ключевых слов, если к примеру для подстановки было слово “soft” то парсер подставлял ссылку также и для части слова “software”, теперь поставляются ссылки только для отдельных слов.
· небольшие улучшения эргономики интерфейса.
· исправлена проблема статуса публикаций, (на не влияла на работу), парсер устанавливал неправильный статус публикации «не опубликовано», сейчас он устанавливает этот атрибут правильно.
· реализован алгоритм блокирования публикаций. Для блокировки необходимо средствами wordpress удалить ненужные публикации, и они появятся в разделе “delete” парсера и будут там до тех пор пока их оттуда не удалите. Если их удалить из раздела “delete” они будут распарсены повторно.
· переписана функция загрузки картинок на сервер (раньше была file_get_content теперь работает на curl).
«Add Feed» – добавить ленту
«Disable» – деактивировать ленту
«Edit» – редактировать настройки ленты
«Delete» – удалить ленту
«Test» - тестировать ленту
«Debug» - лог работы парсера


Важно – наличие внешних ссылок зависит от наличия тэга <a> в фильтре тэгов!

«From» – что нужно заменить
«To» – на что заменить (можно добавить html или текст)
«Limit» –максимум замен на одной странице
«Delete» – для удаления записи, отметьте галочку и нажмите «Save»
«Active» – позволяет скрипту производить замену
Сортировка по категориям в зависимости
от наличия ключевиков
«KeyWord» – ключевик
«Cetegory» – категория куда добавлять
«Delete» – для удаления записи, отметьте галочку и нажмите «Save»
«Active» – позволяет скрипту производить авто распределение
Import from category - автоматический импорт слов из названий категорий блога в сортировщик по ключевым словам

Посты Wordpress'a – еще несинонимизированные публикации блога
Search Synonim – поиск синонима по слову
Import Synonim – импорт Ваших баз синонимов.
Charset – кодировка файла с синонимами.
Truncate table – очистить базу синонимов перед загрузкой новой.

Debug – включить или отключить дебаг(лог работы).
Format for portator: - расчирения файлов которые будет обрабатывать портатор.
User for XMLRPC – логин пароль в блог (требыется для работы через XMLRPC )
Allowed words - фильтр обязательных слов. Можно использовать маску вида «моск*»
Stop words – фильтр запрещенных слов
Images property – граничные размеры картинок при закачке на сервер.
Time offset – смещение времени публикации новых постов в часах относительно текущего времени блога.
Min Sort Keyword length – параметр влияющий на работу Import from category минимальная длинна слов в названии категорий которые будут обработаны.
Proxy List – список прокси серверов.
Min Post Tags length - скрипт автоматически формирует тэги (метки) для публикаций блога из слов в заголовке публикации. Этот параметр позволяет ограничить длину обрабатываемых слов.
Setting Bookmarks – системы букмарков, необходимо вводить логин и пароль по одному для аккаунта в каждую строку.
Export Setting Feedmaster – экспорт настроек в файл.
Import Setting Feedmaster – импорт настроек из файла.
Clear Table Posts – удаление всех публикаций.
"Категория по умолчанию для сортировщика по ключевым словам" - если ни одно ключевое слово в сортировщике не сработало, либо их просто нет, то публикация добавляется в категорию указанную в этой настройке.

Кнопка delete - удалив из этого меню публикации, вы позволите парсеру их повторно распарсить.
Краткий список логических операций системы:
Некоторые сайты имеют защиту от парсинга или ddos. Был случай что во время тестирования парсера ленты которые мы активно использовали для тестирования временно были недоступны с ip нашего сервера. Следовательно эти ресурсы обладали защитой. Будьте внимательны, настраивайте импорт через определенный интервал времени или используйте прокси!
Необходимо установить CRON задание для запуска скрипта http://www.yousite.com/wp-feedmaster.php с периодом запуска - например каждый час, или на другой период запуска какой Вам необходим. Параметры настройки CRON смотрите в FAQ вашего хостера.
Reading - catId: 3; source: http://rsssourcesite.com/news/index.xml
<br />
<b>Fatal error</b>: Call to undefined function: iconv() in <b>/home/admin/domains/mydomain.com/public_html…
В чем проблема?
Попросите администратора сервера активировать php функцию iconv(). Обычно это решается быстро и положительно.
Сегодня мне задали вопрос “Как узнать сигнатуру для сайта с которого будешь грабить?”
Потому я решил написать небольшую практическую статью о том, как правильно составить сигнатуру для парсинга сайта источника:
для примера возьмём источник xttp://allcredits.ru/rss/
последовательность действий которые нужно выполнить:
1. открываем ленту браузером- я использую Firefox

2. далее открываем любую публикацию из тех что есть в ленте, например эту xttp://www.allcredits.ru/1/15346/

3. открываем исходный код публикации (source code) и ищем где в коде находится текст публикации, которую собственно мы будем грабить.
4. Суть метода: нужно составить такую комбинацию тэгов и команд {get} и {skip} чтобы парсер чётко знал какой участок грабить а какой пропустить. Напомню что команда {get} дает указание парсеру грабить, а команда {skip} - пропустить.
Парсер работает по принципу: ищем метку, грабим или пропускаем до следующей
метки и так далее. Метками выступают в данном случае участки ХТМЛ кода.
Рассмотрим на примере - вот исходный код страницы источника:

в ХТМЛ коде самым близким уникальным тэгом к участку который нужно сграбить, есть код <span class=”date”>. Также, можно заметить что контент заканчивается тэгом <br clear=all>.
Остался маленький нюанс: нам нужно выбросить дату “5 июня 2008 года”, в это нам поможет команда {skip}.
Следовательно сигнатурой для парсинга этого источника будет “<span class=date>{skip}</span>{get}<br clear=all>“.
Эту команду нужно добавить в парсер в поле “Get content:”
Запускаем парсер, получаем результат:

Возможно кто-то заметил, что парсер как-то по другому работает, а именно добавление публикации происходит не так как в версии 1.4.x, а после парсинга каждой публикации, она сразу добавляется в блог. Это потому, что я использовал в этом обзоре новую версию парсера 1.5, которую сейчас тестируем. Также замечу, что добавление публикаций происходит через XML-RPC. Зачем это нужно? Очень нужно! Так как теперь без проблем будет работать кросспостинг в Лайвжорнал, и пинг, а также многое другое!
Вы можете импортировать Ваши базы синонимов используя функцию импорта из txt файла или gz архива.
1. загружаем базу синонимов в UTF-8 формате в папку wp-content/plugins/feedmaster/syn/
2. переходим в меню «# Синонимы» и выбираем базу

3. нажимаем на кнопку «Загрузка из файла»
Также в этом меню доступны функции синонимизации несинонимизированных публикаций, а также редактирование синонимов в базе.
Следует обратить внимание на то, что парсер во время работы нагружает сервер.
Потому если на одном сервере много сайтов, то запускать по cron-у каждый блог нужно в свое время а не все одновременно.
Скрипт импорта нужно запускать через эмуляцию загрузки страницы в unix системе (команды wget или GET lynx или подобуню команду).
Внимание! Запуск через php особенно на русскоязычных блогах может приводить к неправильной работе!
Если запуски парсеров на разных блогах производить в свое время, то без проблем на одном сервере можно хостить 20 блогов и больше. Проверено.
Также рекомендую использовать параметр Feed Import interval: в настройках каждой ленты. Используя разные интервалы для каждой ленты, можно добиться того, что в один момент времени парсер будет парсить только часть лент а не все, тем самым нагрузку на сервере можно распределить по времени.
Пример строки для запуска по крону wget -O /dev/null -q http://mysite.com/wp-feedmaster.php

Далее проверяем почтовый ящик на который система отправила проверочный пин код, вводим пин код

на следующей странице и переходим на страницу ввода названия домена.

Внимание! Пожалуйста, будьте внимательны при воде названия домена, необходимо вводить без www и без пробелов до и после названия, для сабдоменов необходимо вводить название в формате subdomain.domain.com. Дистрибутив сгенерированный для основного домена, к сожалению не будет работать на сабдоменах.
Выбираем версию системы

Скачиваем дистрибутив


Копировать необходимо: файлы wp-feedmaster.php wp-go.php в корневую директорию блога, папку feedmaster с ее содержимым – в папку плагинов wp-content/plugins. Просто выделите файлы как на предыдущем скриншоте и скопируйте в корневую директорию блога.


Первый делом переходим в раздел «Опции» и вводим логин и пароль в блог в соответствующие поля. Дело в том, что работа через интерфейс XMLRPC требует наличия логина и пароля в блог.
Внимание! Будьте внимательны! Если Вы меняете пароль в блог, или восстанавливаете пароль, необходимо его изменить и в настройках FeedMaster, так как без этого он не будет работать!
Вот типичная настройка граббинга по стандартной схеме: берем RSS канал, получаем из него ссылки на оригиналы публикаций и названия публикаций.

Парсер работает так: грузит RSS ленту, получает список публикаций, берет первую, грузит оригинал публикации по ссылке, парсит контент по сигнатуре, заголовок берется из RSS канала.
Следует обратить внимание на такие настройки:
В этом примере установлено «Добавлять максимально» 3 публикации за запуск парсера, не более. Парсер может добавить меньше, например если не отработает до конца, по причини малого временного лимита. Но больше 3 публикаций за запуск добавлено не будет.
«Добавлять в категорию:» - выбрана категория куда будут добавляться публикации.
Если на выбрать эту категорию то по умолчанию эта настройка устанавливается как
«использовать сортировщик». Это говорит о том, что публикации будут сортироваться по категориям в зависимости ключевых слов. Чтобы это работало необходимо эти слова добавить в сортировщик в меню «Сортировка».

Можно добавлять части слов, и при наличии этих слов в теле публикации, эта публикация будет добавлена в эту категорию.

Если публикации не добавляются в блог, проверьте первым делом введен ли логин и пароль в блог в настройках блога и активирован ли XMLRPC интерфейс в блоге.
в букмарк системы, Вам необходимо в Опциях ввести логины и пароли в букмарк системы через двоеточие как на скриншоте:

А также необходимо активировать чекбокс Добавлять в букмарк системы? В настройках ленты как на скриншоте ниже.

Необходимым условием для нормальной работы портатора есть наличие большого лимита времени на выполнение php скриптов. Если Вы не можете установить этот параметр хотя бы 30 минут, то лучше не начинать. Дело в том, что портатор работает по такому алгоритму: типичная настройка, «Глубина обработки» - достаточно 2, «максимальное количество ссылок» - 1000, это значит что портатор найдет все ссылки на стартовой странице(это уровень 0), далее все ссылки на всех страницах найденных на стартовой(уровень 1) и далее на всех этих страницах (уровень 2). Таким образом образуется большой массив страниц сайта, из которого удаляться дубликаты и только после этого портатор начнет грабить публикации поочередно загружая эти страницы.
Все это занимает время, для среднего сайта объемом 500-600 страниц контента обработка может идти час и более. Но и результат будет соответствующий, на выходе у Вас получится блог с архивом за год или больше J. Если скрипт не отработал и вырубился, при повторном запуске он начнет все сначала, так что на виртуальном хостинге лучше и не пробовать. Далее рассмотрим типичную настройку портатора, чтобы на выходе получить блог с архивов за полтора года.
Рассмотрим настройки источника:

На что следует обратить внимание:
Также необходимо в разделе «Опции» активировать отладку. Это поможет параллельно с работой портатора отслеживать его работу в дебаге. http://domain.com/wp-admin/options-general.php?page=feedmaster.php&action=debug
Параметр «Создать архив в блоге за :» устанавливаем как 500 дней. Таким образом дата публикации будет выбираться случайным образом
Далее запускаем парсер, http://domain.com/wp-feedmaster.php, в другом окне браузера можно наблюдать как работает портатор обновляя Окно отладки.
После того как портатор сформирует массив ссылок сайта он начнет их парсить и добавлять в блог, формируя архив за полтора года.
Среди новых функций
доступны:
# двухсторонний переводчик на основе Google Translate
# поддержка Wordpress MU
# автоматическое создание категорий из данных в rss канале
# рандомная вставка в букмарк системы
# рандомная замена тэгов b на strong i на u
# несколько URL в рамках одного парсинг правила
# уникализатор: мешап абзацев, предложений, выжимка, вставка пробелов в словах
# обработка опечатками
# возможность запуска через крон отдельных лент
# искать YouTube видео по названию публикации
также исправили рад ошибок и багов.
Система требует установленного IonCube loader. Хотя мне не встречались пока
хостинги где он не установлен.
Для генерации дистрибутива новой версии идем на страницу генератора http://www.feedmaster.org/generator.html
вводим ключ, потом пин полученный ка емейл, далее выбираем версию 1.5.11 или
1.6 и скачиваем дистрибутив.
Внимание! В дистрибутиве лежит архив с файлами плагина, он в процессе генерации не меняется (в отличии от предыдущей версии 1.5.х где дистрибутив генерировался на лету) , следовательно один дистрибутив можно копировать не любое количество доменов. Но он не будет работать пока Вы не скопируете в папку wp-content/plugins/feedmaster файл лицензионный файл feedmaster.lic!

Встроенный двухсторонний переводчик позволяет автоматически переводить текст и заголовок публикации на любой из доступных языков и обратно.

Для того чтобы осуществлялся перевод, выберите необходимые языковые пары, отметите если нужно переводить заголовок.

Доступны такие функции уникализации:
Формат прост
…
абитуриент;ученик
Абонировать;нанимать,брать,внаем,нанимать
абонироваться;абонировать,нанимать,подписываться
абордаж;столкновение
абориген;житель,туземец
абортировать;рождать
…
делается это так
http://site.com/wp-feedmaster?feed=1,3,4
то есть какие нам нужны ленты перечисляем через запятую
Важно! База должна быть в формате UTF-8
тое главный синоним;первый синоним,второй синоним
главный синоним – это синоним которыймы будем заменять
остальные – те синонимы на которые будем заменять
В версии FeedMaster 1.6 мы убрали вывод всего текста публикации в логе, оставили отображение объема контента. В данном случае длинна основного текста публикации 4248 символов.
Настоящее лицензионное соглашение заключается на использование данного программного продукта. Пожалуйста внимательно прочтите это соглашение. Если Вы не согласны с условиями лицензионного соглашения, Вы не можете использовать данных продукт. Установка и использование продукта означает полное согласие со всеми пунктами данного лицензионного соглашения.
Лицензионное соглашение вступает в силу с момента приобретения продукта и действует на протяжении всего срока использования продукта.
предметом соглашения есть право использования продукта “FeedMaster” (В дальнейшем "программа" или "продукт") в порядке и на условиях настоящего соглашения.
Сопутствующие товары, базы данных, сигнатуры либо другая информация, предоставленная разработчиком пользователю. Сопутствующие товары можно использовать для любого количества лицензионных копий продукта, приобретенного одним пользователем.
Все положения настоящего соглашения распространяются как на продукт так и на его составные части, а также сопутствующие ему приложения, данные, сопутствующие товары.
Продукт можно использовать только для одного сайта. Для использования продукта на другом сайте необходимо приобрести лицензию.
Лицензионное соглашение дает право только на использование продукта, и не предоставляет права собственности на продукт либо его составные части.
Продукт является интеллектуальной собственностью разработчика.
Все права собственности и авторские права принадлежат разработчику.
Продукт защищен Законодательством регулирующим отношения в сфере охраны интеллектуальной собственности программ, баз данных для электронных вычислительных машин.
Нарушение авторских прав преследуется в соответствии с положениями действующего законодательства.
Настоящее лицензионное соглашение предусматривает установку не более одного сайта для каждой лицензии.
Запрещено копирование программы, передача ее третьим лицам, распространять ее и/или ее компоненты в любой форме, в том числе в виде раскодированного исходного текста, либо в любом другом виде. Также запрещено сдавать в аренду/прокат продукт лило его компоненты или составные части продукта.
Пользователь может при необходимости вносить изменения в код продукта в соответствии с Законодательством об авторском праве. В таком случае разработчик не гарантирует бесперебойную работу продукта.
Запрещается удалять информацию об авторских правах.
Запрещается любое использование системы, противоречащее действующему законодательству.
За нарушение условий настоящего соглашения наступает ответственность, предусмотренная законодательством.
Разработчик не несет ответственности перед пользователем продукта за любой ущерб, потерю прибыли, потерю информации или сбережений, связанных с использованием или с невозможностью использования продукта, даже в случае предварительного уведомления о возможности такого ущерба, или по любому иску третьей стороны.
Разработчик не осуществляет возврат денег пользователю за продукт.
Разработчик осуществляет обслуживание продукта в течении 12 месяцев с даты покупки.
Разработчик осуществляет исправление ошибок, возникших во время использования продукта в максимально возможные сроки.
5В случае несоблюдения пункта 3 настоящего соглашения, пользователь автоматически теряет гарантию.
Пользователь, который приобрел продукт, получает возможность пользоваться службой поддержки в течении одного года после даты приобретения продукта.
В гарантийное обслуживание включено: исправление ошибок в продукте, консультации по электронной почте и в специальном разделе на сайте проекта.
Пользователь получает право участвовать на специализированном форуме между пользователями и разработчиком.
При нарушении пункта 3 данного лицензионного соглашения разработчик в праве отказать в технической поддержке а также в выдачи обновлений продукта, а также аннулировать ранее приобретенные лицензии.
Разработчик оставляет за собой право в любой момент времени внести изменения в данное лицензионное соглашение.
В случает нарушения пользователем лицензионного соглашение разработчик в праве разорвать его уведомив об этом пользователя по электронной почте либо любым другим способом.
При расторжении лицензионного соглашения пользователь обязан прекратить использование продукта либо его составных частей либо сопутствующих товаров.
Пользователь может расторгнуть данное лицензионное соглашение полностью удалив продукт.
В случае если компетентный суд признает какие-либо положения настоящего соглашения недействительными, лицензионное соглашение продолжает действовать в остальной своей части.
Настоящее лицензионное соглашение распространяется также на все новые версии продукта и все обновления, предоставляемые пользователю на условиях технической поддержки, а также на все сопутствующие товары.