Monday, November 16, 2015

WPGRABBER или возвращение блудного плагина

Wpgrabber жив

    Похоже в последнее время многие претерпели некоторое разочарование при временном приостановления данного проекта (для тех кто ещё не в курсе WPGrabber - это мощный плагин под Ворпресс для создания автонаполняемых блогов, сайтов, сателлитов и даже порталов). Поэтому я попытаюсь реанимировать данную тему, чтобы помочь тем, кто занимается или только собирается заниматься построением сайтов на автопилоте. 

Основные возможности плагина WPGrabber

  • импорт контента в блог с любых HTML-сайтов
  • импорта контента в блог с любых RSS-потоков
  • импорт контента в блог со стен групп и сообществ соц. сети Вконтакте.ру
  • возможность сохранения изображений из импортируемого текста у вас на сервере
  • возможность перевода импортируемого контента на лету (поддержка более чем 20 языковых пар, функция двойного перевода для получения уникальных текстов)
  • фильтрация сохраняемого у вас в блоге контента по словам, а также по наличию изображений в тексте.
  • гибкие настройки обработки импортируемого текста (удаление из получаемого текста ненужных блоков информации, ссылок, картинок и т.д.)
  • поддержка режима автоматической работы обновления информации с других сайтов
  • интеграция с WordPress (поддержка Custom Post Types, поддержка Post Status, генерация алиасов для URL'ов записей в режиме ЧПУ)

Зачем нужен этот плагин?

     Основная функция плагина WPGrabber конечно же наполнять ваш блог информацией с других сайтов. Однако учитывая весь функционал плагина можно предложить его использование для:
  • наполнения СПЛОГОВ, ГС и любых других сайтов информацией с других сайтов, блогов, rss-потоков, стен вконтакте.
  • ведения полнотекстовых новостных колонок у себя в блоге используя информацию с других сайтов
  • создания локализованных версий сайтов при помощи встроенной системы перевода контента "на лету"
  • создание информационных копий других сайтов 

Как это настроить?

     Для импорта информации из RSS-потоков, а также стен сообществ и групп социальной сети Вконтакте.ру вам достаточно лишь указать URL-адрес.
     Для импорта полнотекстовой информации с любого HTML-сайта помимо URL-адреса сайта необходимо будет указать такие данные как: Кодировка HTML-страницы, Шаблон ссылок, Шаблон заголовка, Начальная точка полного текста и Конечная точка полного текста. 

Пример настройки импорта новостей с сайта top.rbc.ru

     В данном примере мы разберем настройку html-импорта новостей с сайта http://top.rbc.ru/, а точнее с его раздела Главные новости.
     1) Выбираем Новая лента в плагине WPGrabber и в поле Наименование ленты пишем какое-либо название для нашей первой настройки импорта. Вы можете написать в данный параметр все что угодно, к примеру: Главные новости РБК.
     2) В типе ленты у нас должно быть выбрано значение html
     3) Следующий обязательный параметр, который нужно указать это URL индексной страницы. Это URL-адрес в строке браузера той страницы сайта, с которой мы будем собирать ссылки на необходимые нам новости.
В нашем случаем это адрес: http://top.rbc.ru/
     4) Далее нам надо указать такой важный параметр как Кодировка HTML-страницы.
Кодировку страницы сайта можно узнать в ее исходном HTML-коде.
Теперь для удобства откройте страницу http://top.rbc.ru/ на другой вкладке вашего браузера.
После загрузки данной страницы, откройте ее исходный код (HTML-код страницы).
В браузере Google Chrome это делается с помощью нажатия сочетания клавиш Ctrl + U.
Можно также просто щелкнуть в любом месте по странице правой кнопкой мыши и выбрать Просмотр кода страницы.
     В FireFox и Internet Explorer сочетание Ctrl + U работает так же. 
В открытом исходном коде ищем строку вида:
     Здесь utf-8 как раз таки и есть кодировка страницы! Потому выбираем в параметре Кодировка HTML-страницы значение UTF-8.
     В некоторых случаях при большом количестве кода для того чтобы проще найти строку с упоминанием кодировки воспользуйтесь поиском слова charset. Для поиска в Google Chrome и других браузерах достаточно лишь нажать сочетание клавиш Ctrl + F и ввести слово charset. Скорее всего первым результатом поиска в исходном коде будет нужная вам строка с указанием кодировки.
Еще раз обратите внимание на то, как в исходном html-коде страницы указывается кодировка:
<meta http-equiv="Content-Type" content="text/html; charset=ЗДЕСЬ КОДИРОВКА" />
     На некоторых сайтах кодировка не указана, тогда пробуйте значение: Исходная, или же WINDOWS-1251.
     5) Теперь нам необходимо определить один из самых главных параметров (параметр: Шаблон ссылок), с которого начинается сбор ссылок на интересующие нас страницы сайта, которые мы хотим импортировать к себе на сайт.
Для того чтобы правильно задать параметр Шаблон ссылок, нужно сначала посмотреть на вид ссылок в исходном коде HTML страницы.
Для этого выделяем и копируем текст (или часть текста) первого или любого другого заголовка новости (т.е. непосредственно текст ссылки ведущей на страницу новости) на странице http://top.rbc.ru/, к примеру на момент написания данной статьи заголовок первой новости: "На Украине стартовали выборы в Раду"
     Теперь переходим на открытую нами ранее вкладку исходного кода страницы http://top.rbc.ru/ и делаем поиск в ней по скопированному нами тексту заголовка. Для этого я нажимаю сочетание клавиш Ctrl + F и в поле поиска вставляю скопированный текст: "На Украине стартовали".
     Обратите внимание на то, что совсем не обязательно искать весь текст заголовка, он может оказаться слишком длинным. Можно выделить его небольшую часть, как в этом примере и искать эту часть в исходом коде.
     Так как данный текст может встречаться в исходном коде страницы не только внутри ссылок, но и в других местах, нам необходимо найти именно ту часть кода, где перед искомым текстом находится открытый html-тег ссылки: <a href="/ а после идет закрывающий тег </a>, в этом примере второе совпадение части текста (На Украине стартовали) оказалось именно таким:
     Конкретно здесь, нас интересует именно тег A, вернее его свойство href, которое является URL-адресом данной ссылки. Из выше приведенного примера видно, что страница новости под заголовком "На Украине стартовали выборы в Раду" находится по адресу: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46
     Проанализируем структуру этого URL-адреса:
http://top.rbc.ru/слово/2-е цифры/2-е цифры/4-е цифры/некоторое кол-во букв и цифр
обратите внимание, что описав таким словесным способом этот адрес мы оставляем без изменений некоторые его части, а именно: адрес сайта http://top.rbc.ru, потому эта часть адреса остается неизменной для всех остальных ссылок, представленных на странице.
Теперь давайте посмотрим на другие ссылки к остальным новостям:
http://top.rbc.ru/textonlines/26/10/2014/544a76f3cbb20f29aa5eb36d
http://top.rbc.ru/society/26/10/2014/544c1b3fcbb20fda6d160a8b
http://top.rbc.ru/politics/25/10/2014/544b924acbb20f9fe42c1e93
http://top.rbc.ru/politics/26/10/2014/544c0409cbb20fc840db65e6
http://top.rbc.ru/economics/25/10/2014/544b4b69cbb20f365c3f754f

     Все выше перечисленные ссылки подходят по ранее описанный "словесный" шаблон. Для задания шаблона ссылок в WPGrabber необходимо использовать определенный формат описания таких шаблонов (формат описания регулярных выраженийPCRE, о PCRE на ).
     Как мы видим, за место вхождения части под названием «слово» в словесном описании адреса у нас встречаются следующие варианты текста: textonlines, society, politics и economics. Эти варианты имеют разную длину (кол-во символов), а также скорее всего могу включать в себя еще и цифры. Единственный символ который не может встретится в части адреса под названием «слово» - это символ пробела, потому что пробелы в URL адресах недопустимы!
     В регулярных выражениях PCRE любой непробельный символ обозначается следующей конструкцией \S
     Обратите внимание на слэш \ перед заглавной буквой S. Обратный слэш в регулярных выражениях отменяет обычное действие символа, мы могли бы написать просто символ буквы S и тогда она была бы просто заглавной буквой S в нашем регулярном выражении. Однако \S — означает ровным образом один любой символ, кроме пробела!
     Так как наши вариации слов: textonlinessocietypolitics и economics состоят из нескольких символов (букв слова), нам нужно как-то указать в нашем выражении кол-во символов. Для этого используются фигурные скобки.
к примеру выражение \S{5} означает ровно 5-ть подряд идущих непробельных символа.
К примеру слово "гамбургер" попадает под регулярное выражение \S{9}, но не попадает под выражение \S{4}, потому что в слове гамбургер именно 9 букв, а не 4.
     Помимо точного указания кол-ва символов в строке, регулярные выражения позволяют указывать и диапазон символов, к примеру под выражение: \S{3,6} попадают все слова длиною от 3-х до 6 символов (включительно!).
     Также есть возможность указания минимального кол-ва символов в строке без указания максимального, к примеру: \S{4,} — все слова от 4-х символов длиной и больше.
     Давай-те еще раз взглянем на наши варианты: textonlinessocietypolitics и economics. Длина слов : 11, 7, 8 и 9 символов. Для большей надежности можно предположить, что длина слов в этой части адреса будет составлять от 1-го и более символов.
Переписав начальную часть нашего шаблона мы получим следующее:
http://top.rbc.ru/\S{1,}/
     На данном этапе мы могли бы записать весь шаблон ссылок в виде:
http://top.rbc.ru/\S{1,}/\S{2}/\S{2}/\S{4}/\S{1,}
однако некоторые части URL-адреса ссылок, содержат явные цифры, а не просто любые непробельные символы. Для описания именно цифр от 0 до 9 в регулярных выражения используется конструкция вида \d. Для указания количества подряд идущих цифр в выражении используется та же самая конструкция с фигурными скобками, а именно: \d{4} — означает 4-подряд идущие цифры, к примеру: 8976 или 6789 и т.д.
     Перепишем наше выражение с учетом вхождения в него именно цифр а не всех символов:
http://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/\S{1,}
     Данное выражение можно смело вставить в Шаблон ссылок, нажать на кнопку Применить, и после сохранения настроек ленты нажать на кнопку Тест импорта, чтобы убедится в правильности составления регулярного выражения поиска ссылок в тексте сайта.
     Теперь обратите внимание, что Плагин нашел гораздо больше ссылок, чем нам нужно. Более того в наш список ссылок попали такие ненужные нам ссылки:
     А также, неправильные (не работающие) ссылки вида :
http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46"
http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46">
     Это всё потому, что конструкция \S{1,} собирает все не пробельные символы длинной от одного и больше. Т.е., в нашу выборку попадают и кавычки (") и треугольная стрелка вправо (>), которые не должны быть в URL-адресе ссылки.
     Нас же интересуют только буквы и цифры в последней части URL-адресов ссылок:
http://top.rbc.ru/textonlines/26/10/2014/544a76f3cbb20f29aa5eb36d
http://top.rbc.ru/society/26/10/2014/544c1b3fcbb20fda6d160a8b
http://top.rbc.ru/politics/25/10/2014/544b924acbb20f9fe42c1e93
     Когда нам нужно в регулярном выражении перечислить вхождение разных символов (набора символов), то мы можем использовать квадратные скобки. Выражение вида:
[\w\d]{1,}
буквально означает: любая одна буква или одна цифра или более подобных символов.
     К примеру, под выражение вида (любые две буквы или цифры или и буквы и цифры и более подобных символов):
[\w\d]{2,}
попадут строки :
aa
b3
3g
bb432
g0
111
но, не попадут, строки вида:

11"
-7j
9
3_23
<bh
     Таким образом, если мы перепишем наше выражение в виде:
http://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
     Оно перестанет отлавливать ненужные и неправильные ссылки!
Вставьте это выражение в Шаблон ссылок, нажмите Применить, а затем Тест импорта и Вы увидите как плагин найдет уже всего 12 ссылок и все они будут правильными!
     Для верности переходим на страницу  и считаем кол-во ссылок на новости проверяя правильность настройки шаблона ссылок. На странице помимо 10 ссылок расположенных в центре страницы под наш шаблон попали еще 2 ссылки, расположенные в других частях страницы. В следующем уроке Вы сможете найти информацию о том, как выбрать ссылки только из определенной части начальной страницы.
     Внимание! Если в режиме теста импорта у вас на экране отображается надпись Найдено ссылок: 0 — дальнейшая настройка других параметров ленты практически лишена смыла! Нет ссылок на новости — не будет импортированных записей в WordPress.
     А если WPGrabber не находит ссылки на новости - значит вы сделали ошибку в написании регулярного выражения шаблона ссылок или же неправильно указали параметры: URL индексной страницы или Кодировка HTML-страницы.
Еще одно небольшое важное замечание по поводу правил написания регулярных выражений. Все дело в том что в регулярных выражениях формата PCRE, есть специальный набор символов или как еще их часто называют управляющие символы.
Приведем весь их перечень через запятую:  .*+?|()[]{}$^
     Когда вы в регулярном выражении пишите к примеру символ точки (.)- то он не означает в прямом смысле простую точку в тексте. Точка в регулярном выражении — это служебный символ обозначающий вхождение любого символа алфавита, циферного символа, символа пробела и вообще любого другого символа. Т.е. точка в регулярном выражении — это вообще любой символ в тексте.
     Таким образом под выражение:
http://top.rbc.ru/\S{1,}
попадут не только адреса вида:
http://top.rbc.ru/blog
http://top.rbc.ru/123
но также адреса вида:
http://top1rbc-ru/d343
или
http://top8rbc6ru/soc
     Для того чтобы в регулярное выражение вставить именно символ точки, нужно перед управляющим символом поставить обратный слэш, т.е. выражение \. обозначает как раз таки обычную точку в тексте.
     Таким образом, по правильному наш шаблон необходимо переписать в следующий вид:
http://top\.rbc\.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
т.е. экранировать в нем все вхождения точки как служебного символа.
     Вы спросите, почему же наш шаблон даже в виде:
http://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
сработал успешно? Ответ прост: точка в регулярном выражении, как я уже написал выше, обозначает любой символ, в том числе простую точку!
Если вы прокрутите страницу с результатом теста импорта ленты чуть ниже отображения ссылок вы увидите следующее:
Мы не задали правила выборки двух основных параметров для записей WordPress - это заголовок и текст.
     6) Начнем с Заголовка — который при импортировании ленты будет заголовком создаваемых в WordPress записей (постов).
     Для того чтобы WPGrabber нашел заголовок в тексте страницы определенной новости нам необходимо описать шаблон его поиска. Тут тоже используется формат регулярных выражений как и в описании Шаблона ссылок.
     Итак, перейдем на сайт http://top.rbc.ru/, скопируем текст заголовка (или его часть) любой новости. В моём случае это заголовок новости: "На Украине стартовали выборы в Верховную раду". Далее перейдем по ссылке выбранной новости: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46.
     Попав на страницу новости, открываем ее исходный код (как открыть исходный код страницы было описано выше, используйте сочетание Ctrl + U). Произведем поиск нашего заголовка в исходном тексте страницы:
 
     братите внимание, что в числе первого найденного включения (вхождения) заголовка на странице http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46, вы найдете следующий часть кода:
<title>На Украине стартовали выборы в Верховную раду :: Политика :: РосБизнесКонсалтинг</title>
однако не спешите использовать это вхождение, ведь в нём у нас помимо текста самого заголовка "На Украине стартовали выборы в Верховную раду" присутствует еще и добавочный текст " :: Политика :: РосБизнесКонсалтинг", который нам совсем ни к чему в заголовке записей.
     Найдите чистое вхождение строки заголовка без добавочных слов до и после. В нашем случае это вхождение встречается в виде:
<meta name="title" content="На Украине стартовали выборы в Верховную раду" />
     А также еще ниже:
<meta property="og:title" content="На Украине стартовали выборы в Верховную раду " />
Использовать можно любое чистое вхождение текста заголовка.
Теперь нам надо составить регулярное выражение для поиска заголовка в тексте страницы.
По предыдущим примерам, можно было бы написать следующее выражение:
<meta name="title" content=".{1,}" />
Вы же помните, что точка - это не просто точка, а любой символ в регулярном выражении!
     Однако такое выражение вернет нам всю строку целиком, т.е. в заголовок материала попадет строка вида:
<meta name="title" content="На Украине стартовали выборы в Верховную раду" />
нам же, нужен именно текст "На Украине стартовали выборы в Верховную раду" расположенный между кавычками внутри этого тега.
     Для обозначения выборки определенной части текста из строки, в регулярных выражениях применяются группирующие символы круглых скобок ( ). Внутри которых как раз и должна быть та часть текста, которую мы хотим выбрать из строки.
Кроме того в регулярных выражениях есть такая конструкция вида: .*?
     Это конструкция вбирает (поглощает) в себя любое кол-во символов вплоть до встречи со следующим символом после нее. Т.е. к примеру выражение вида:  .*?b — вернет все слова оканчивающие буквой b или же внутри которых есть буква b. Попробуем применить эту конструкцию к нашему выражению:
<meta name="title" content="(.*?)" />
     Скопируем это выражение в поле Шаблон заголовка, нажмем кнопку Применить и снова кнопку Тест импорта.
Видим, что WPGrabber теперь находит правильные заголовки:
     7) Следующим важным этапом является поиск основного текста страницы.
Для поиска текста необходимо задать два параметра ленты: Начальная точка полного текста и Конечная точка полного текста. Снова переходим на страницу любой новости. К примеру, той же: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46
     Копируем часть начального текста (не обязательно с самого начала, можно в середине текста), открываем исходный код страницы, и производим поиск по этой части текста. Есть вероятность того, что этот текст будет встречаться у вас в исходном коде страницы не один раз, потому важно найти именно то вхождение, которое является началом текста новости на странице. Сравните текст в исходном коде и на самой странице, найдите его начало и конец. 
     Важной задачей правильного определения границ текста является нахождение уникальных частей HTML-кода или любых других конструкций (части текста и т.д.) до и после полного текста новости.
     Итак, находим начальную точку текста:
     Перед началом текста "Внеочередные выборы Верховной рады Украины проходят при усиленных мерах безопасности. Сколько выберут депутатов, зависит" мы видим тег <div class="article__overview__text">.

     Итак, вставляем в поле Начальная точка полного текста строку:
<div class="article__overview__text">
Далее находим конец текста новости. Для этого также можно воспользоваться поиском по словам в последнем предложении текст новости:
и в коде:
Итак, в поле Конечная точка полного текста можно вставить:

<div class="article__photoreport">

Почему именно WPGrabber?

     Основные отличительные особенности плагина WPGrabber
  • Плагин WPGrabber не имеет никаких ограничений! Т.е., Вы можете настраивать импорт контента на свой сайт с любого кол-ва сайтов. Сколько угодно! 
  • Никаких лицензий, привязок к домену и серверу, вы можете устанавливать и использовать данный плагин на сколько угодно своих сайтах и конфигурациях. 
  • Плагин WPGrabber был разработан на основе системы граббинга применяемой в компоненте JoomlaGrabber для CMS Joomla. Вот уже на протяжении нескольких лет (начиная с 2009 года) данная система постоянно развивается и дорабатывается. Более 500 пользователей оценили работу компонента JoomlaGrabber и используют на своих сайтах. Кроме того плагин WPGrabber имеет общий формат файлов экспорта/импорта с компонентом JoomlaGrabber, поэтому вы можете беспрепятственно использовать настроенные ленты сразу в этих двух приложениях. 
  • WPGrabber - имеет достаточное количество настроек, чтобы контролировать весь процесс импорта контента: от получения до сохранения на сервере в базу данных вашей CMS.
  • Для работы WPGrabber не обязательно наличие у вас на сервере библиотеки CURL.
    Для работы плагина WPGrabber у вас на сервере не требуется никаких особенных условий, кроме наличия возможности посылать внешние запросы любым из способов (либо через библиотеку CURL, либо через стандартную PHP-функцию file_get_contents). Чтобы проверить Ваш веб-сервер (хостинг) на возможность использования на нём плагина WPgrabber воспользуйтесь специальным скриптом для тестирования:
  • Скачать архивный файл по ссылке: test.zip
  • Распаковать архив и извлечь из него файл test.php
  • Загрузить файл test.php в корневую папку своего сайта на хостинге
  • Открыть программу браузер и в адресной строке набрать: http://ваш_сайт/test.php
  • На открывшейся странице нажать на кнопку: Начать тестирование...
  • Скрипт проведет все необходимые проверки и выдаст результат тестирования. 
    Обратите внимание! На то, что даже если в результате всех тестов вы получите сообщения об ошибке - это еще совсем не значит что плагин совсем не будет работать у вас на хостинге. Вполне возможно Вам нужно будет изменить некоторые настройки в панели управления хостингом или же обратится в техническую поддержку хостинга. Как правило, плагин WPGrabber работает даже на некоторых бесплатных хостингах.

Примеры сайтов наполненных с помощью WPGrabber


polotsk24.ru Новостной портал Полоцка. Самые актуальные новости мира и Беларуси
Автор: Григорьев Игорь. Комментарий: 95% наполнения моего сайта идет через плагин WPGrabber, практически все страницы в поиске Яндекса. Сайт молодой, заработок пока минимальный от его возможностей. Затраты окупились через месяц после добавления сайта на ссылочную биржу.


сергиев-посад.рф Информационно новостной портал города Сергиев ПосадАвтор: Recluse. Комментарий: Неделя на запуск (подготовка шаблона, виджетов, рубрикатора) и еще пару недель на настройку лент и доработку. Практически 100% контента получена с помощью WPGrabber. Приносит прибыль: Директ + AdSense. На ссылочных биржах в перспективе. Информация на сайте обновляется автоматически с помощью WPGrabber, от 10 до 20 записей в день. Окупился через месяц.
autodriving.net АвтоПортал — AutoDriving
Автор: Иван. Комментарий: С помощью плагина я добавляю новости на сайт. Модерирую вручную, к сожалению, плагин еще не на столько умный, что бы делать перелинковку, прописывать нужные альты к картинкам. + Я изменяю заголовки и тайтл страниц.
charge-up.ru  Charge-up.ru | Новости, статьи, обзоры, все самое интересное из мира электроники.
Автор: Kitik (Комлев Дмитрий Александрович). Комментарий: Плагин помог не посредственно в наполнение сайта, так как все новости добавлены с помощью него. По сути сайт сделан для души и для людей =)



Где взять плагин WPGrabber?

     В принципе, любой сможет погуглить и найдёт кучу стареньких или ещё каких-нибудь версий данного чудо-плагина,  но это конечно не даст опробовать в полной мере  все возможности актуальной версии, а также резко снижает % вероятности полноценной работы, и в этом случае лучше конечно же использовать стабильный и доработанный

последний релиз WPGrabber

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

1 comment:

  1. 11.05.2018 вконтакте обновил разметку,
    обновление плагина wpgrabber 2.1.315

    https://www.youtube.com/watch?v=rhwBbEsWQAA

    ReplyDelete