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-коде страницы указывается кодировка:
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/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 — означает ровным образом один любой символ, кроме пробела!
Так как наши вариации слов: textonlines, society, politics и economics состоят из нескольких символов (букв слова), нам нужно как-то указать в нашем выражении кол-во символов. Для этого используются фигурные скобки.
к примеру выражение \S{5} означает ровно 5-ть подряд идущих непробельных символа.
К примеру слово "гамбургер" попадает под регулярное выражение \S{9}, но не попадает под выражение \S{4}, потому что в слове гамбургер именно 9 букв, а не 4.
Помимо точного указания кол-ва символов в строке, регулярные выражения позволяют указывать и диапазон символов, к примеру под выражение: \S{3,6} попадают все слова длиною от 3-х до 6 символов (включительно!).
Также есть возможность указания минимального кол-ва символов в строке без указания максимального, к примеру: \S{4,} — все слова от 4-х символов длиной и больше.
Давай-те еще раз взглянем на наши варианты: textonlines, society, politics и economics. Длина слов : 11, 7, 8 и 9 символов. Для большей надежности можно предположить, что длина слов в этой части адреса будет составлять от 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
Таким образом, если мы перепишем наше выражение в виде:
Вставьте это выражение в Шаблон ссылок, нажмите Применить, а затем Тест импорта и Вы увидите как плагин найдет уже всего 12 ссылок и все они будут правильными!
Для верности переходим на страницу и считаем кол-во ссылок на новости проверяя правильность настройки шаблона ссылок. На странице помимо 10 ссылок расположенных в центре страницы под наш шаблон попали еще 2 ссылки, расположенные в других частях страницы. В следующем уроке Вы сможете найти информацию о том, как выбрать ссылки только из определенной части начальной страницы.
Внимание! Если в режиме теста импорта у вас на экране отображается надпись Найдено ссылок: 0 — дальнейшая настройка других параметров ленты практически лишена смыла! Нет ссылок на новости — не будет импортированных записей в WordPress.
А если WPGrabber не находит ссылки на новости - значит вы сделали ошибку в написании регулярного выражения шаблона ссылок или же неправильно указали параметры: URL индексной страницы или Кодировка HTML-страницы.
Еще одно небольшое важное замечание по поводу правил написания регулярных выражений. Все дело в том что в регулярных выражениях формата PCRE, есть специальный набор символов или как еще их часто называют управляющие символы.
Приведем весь их перечень через запятую: ., *, +, ?, |, (, ), [, ], {, }, $, ^
Когда вы в регулярном выражении пишите к примеру символ точки (.)- то он не означает в прямом смысле простую точку в тексте. Точка в регулярном выражении — это служебный символ обозначающий вхождение любого символа алфавита, циферного символа, символа пробела и вообще любого другого символа. Т.е. точка в регулярном выражении — это вообще любой символ в тексте.
Таким образом под выражение:
попадут не только адреса вида:
http://top.rbc.ru/blog
http://top.rbc.ru/123
но также адреса вида:
http://top1rbc-ru/d343
или
http://top8rbc6ru/soc
Для того чтобы в регулярное выражение вставить именно символ точки, нужно перед управляющим символом поставить обратный слэш, т.е. выражение \. обозначает как раз таки обычную точку в тексте.
Таким образом, по правильному наш шаблон необходимо переписать в следующий вид:
Вы спросите, почему же наш шаблон даже в виде:
Если вы прокрутите страницу с результатом теста импорта ленты чуть ниже отображения ссылок вы увидите следующее:
Мы не задали правила выборки двух основных параметров для записей 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. Попробуем применить эту конструкцию к нашему выражению:
Видим, что WPGrabber теперь находит правильные заголовки:
7) Следующим важным этапом является поиск основного текста страницы.
Для поиска текста необходимо задать два параметра ленты: Начальная точка полного текста и Конечная точка полного текста. Снова переходим на страницу любой новости. К примеру, той же: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46
Копируем часть начального текста
(не обязательно с самого начала, можно в середине текста), открываем
исходный код страницы, и производим поиск по этой части текста. Есть
вероятность того, что этот текст будет встречаться у вас в исходном коде
страницы не один раз, потому важно найти именно то вхождение, которое
является началом текста новости на странице. Сравните текст в исходном
коде и на самой странице, найдите его начало и конец.
Важной задачей правильного определения границ текста является нахождение уникальных частей HTML-кода или любых других конструкций (части текста и т.д.) до и после полного текста новости.
Итак, находим начальную точку текста:
Перед началом текста "Внеочередные
выборы Верховной рады Украины проходят при усиленных мерах безопасности.
Сколько выберут депутатов, зависит" мы видим тег <div class="article__overview__text">.
Итак, вставляем в поле Начальная точка полного текста строку:
и в коде:
Итак, в поле Конечная точка полного текста можно вставить:
1) Выбираем Новая лента в плагине WPGrabber и в поле Наименование ленты пишем какое-либо название для нашей первой настройки импорта. Вы можете написать в данный параметр все что угодно, к примеру: Главные новости РБК.
2) В типе ленты у нас должно быть выбрано значение html
3) Следующий обязательный параметр, который нужно указать это URL индексной страницы. Это URL-адрес в строке браузера той страницы сайта, с которой мы будем собирать ссылки на необходимые нам новости.
4) Далее нам надо указать такой важный параметр как Кодировка HTML-страницы.
Кодировку страницы сайта можно узнать в ее исходном HTML-коде.
Теперь для удобства откройте страницу http://top.rbc.ru/ на другой вкладке вашего браузера.
После загрузки данной страницы, откройте ее исходный код (HTML-код страницы).
В браузере Google Chrome это делается с помощью нажатия сочетания клавиш Ctrl + U.
Можно также просто щелкнуть в любом месте по странице правой кнопкой мыши и выбрать Просмотр кода страницы.
В открытом исходном коде ищем строку вида:
В некоторых случаях при большом количестве кода для того чтобы проще найти строку с упоминанием кодировки воспользуйтесь поиском слова charset. Для поиска в Google Chrome и других браузерах достаточно лишь нажать сочетание клавиш Ctrl + F и ввести слово charset. Скорее всего первым результатом поиска в исходном коде будет нужная вам строка с указанием кодировки.
Еще раз обратите внимание на то, как в исходном html-коде страницы указывается кодировка:
<meta http-equiv="Content-Type" content="text/html; charset=ЗДЕСЬ КОДИРОВКА" />На некоторых сайтах кодировка не указана, тогда пробуйте значение: Исходная, или же WINDOWS-1251.
5) Теперь нам необходимо определить один из самых главных параметров (параметр: Шаблон ссылок), с которого начинается сбор ссылок на интересующие нас страницы сайта, которые мы хотим импортировать к себе на сайт.
Для того чтобы правильно задать параметр Шаблон ссылок, нужно сначала посмотреть на вид ссылок в исходном коде HTML страницы.
Для этого выделяем и копируем текст (или часть текста) первого или любого другого заголовка новости (т.е. непосредственно текст ссылки ведущей на страницу новости) на странице http://top.rbc.ru/, к примеру на момент написания данной статьи заголовок первой новости: "На Украине стартовали выборы в Раду"
Обратите внимание на то, что совсем не обязательно искать весь текст заголовка, он может оказаться слишком длинным. Можно выделить его небольшую часть, как в этом примере и искать эту часть в исходом коде.
Так как данный текст может встречаться в исходном коде страницы не только внутри ссылок, но и в других местах, нам необходимо найти именно ту часть кода, где перед искомым текстом находится открытый html-тег ссылки: <a href="/ а после идет закрывающий тег </a>, в этом примере второе совпадение части текста (На Украине стартовали) оказалось именно таким:
Проанализируем структуру этого 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 — означает ровным образом один любой символ, кроме пробела!
Так как наши вариации слов: textonlines, society, politics и economics состоят из нескольких символов (букв слова), нам нужно как-то указать в нашем выражении кол-во символов. Для этого используются фигурные скобки.
к примеру выражение \S{5} означает ровно 5-ть подряд идущих непробельных символа.
К примеру слово "гамбургер" попадает под регулярное выражение \S{9}, но не попадает под выражение \S{4}, потому что в слове гамбургер именно 9 букв, а не 4.
Помимо точного указания кол-ва символов в строке, регулярные выражения позволяют указывать и диапазон символов, к примеру под выражение: \S{3,6} попадают все слова длиною от 3-х до 6 символов (включительно!).
Также есть возможность указания минимального кол-ва символов в строке без указания максимального, к примеру: \S{4,} — все слова от 4-х символов длиной и больше.
Давай-те еще раз взглянем на наши варианты: textonlines, society, politics и 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,}сработал успешно? Ответ прост: точка в регулярном выражении, как я уже написал выше, обозначает любой символ, в том числе простую точку!
Если вы прокрутите страницу с результатом теста импорта ленты чуть ниже отображения ссылок вы увидите следующее:
6) Начнем с Заголовка — который при импортировании ленты будет заголовком создаваемых в WordPress записей (постов).
Для того чтобы WPGrabber нашел заголовок в тексте страницы определенной новости нам необходимо описать шаблон его поиска. Тут тоже используется формат регулярных выражений как и в описании Шаблона ссылок.
Итак, перейдем на сайт http://top.rbc.ru/, скопируем текст заголовка (или его часть) любой новости. В моём случае это заголовок новости: "На Украине стартовали выборы в Верховную раду". Далее перейдем по ссылке выбранной новости: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46.
Попав на страницу новости, открываем ее исходный код (как открыть исходный код страницы было описано выше, используйте сочетание Ctrl + U). Произведем поиск нашего заголовка в исходном тексте страницы:
<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 теперь находит правильные заголовки:
Для поиска текста необходимо задать два параметра ленты: Начальная точка полного текста и Конечная точка полного текста. Снова переходим на страницу любой новости. К примеру, той же: http://top.rbc.ru/politics/26/10/2014/544bd8b0cbb20f6019aaeb46
Важной задачей правильного определения границ текста является нахождение уникальных частей HTML-кода или любых других конструкций (части текста и т.д.) до и после полного текста новости.
Итак, находим начальную точку текста:
Итак, вставляем в поле Начальная точка полного текста строку:
<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?
В принципе, любой сможет погуглить и найдёт кучу стареньких или ещё каких-нибудь версий данного чудо-плагина, но это конечно не даст опробовать в полной мере все возможности актуальной версии, а также резко снижает % вероятности полноценной работы, и в этом случае лучше конечно же использовать стабильный и доработанный
11.05.2018 вконтакте обновил разметку,
ReplyDeleteобновление плагина wpgrabber 2.1.315
https://www.youtube.com/watch?v=rhwBbEsWQAA