В данном примере мы разберем настройку 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">

 

 

 

 

 

 

 

 

 

Комментарии  

#170 4pi.ru 21.08.2015 14:31
Цитирую Андрей1:
А то даже используя ссылки которые вы приводите как пример РБК лента все равно не выводится. Второй день сижу копаюсь.

Напишите в тех. поддержку или создайте тему на Форуме - поможем!

Цитата:
Просьба уделить внимание шаблонам ссылок/ И примеры разных ссылок.
Разрабатываем новую справочную систему сейчас как раз.
Цитировать
#171 4pi.ru 21.08.2015 14:32
Цитирую pryanicklab.ru:
Добрый день
Подскажите, что я не так делаю
Не получается вытащить заголовок
Донор http://www.life-in-travels.ru/2014/12/turisticheskaya-strahovka.html
Само выражение под него "(.*?)"
http://joxi.ru/xAe5DkXFE7XeAy
http://joxi.ru/1A5WxgJujvb7mE

Создайте тему на форуме пожалуйста, в рамках комментариев очень не удобно обсуждать такие вещи и помогать вам.
Цитировать
#172 4pi.ru 24.08.2015 15:38
Цитирую pryanicklab.ru:
А как доступы к нему получить?

В верхнем меню сайта должен быть пункт Форум: /forum/index
Если нет, то попробуйте выйти с сайта и снова зайти под своим E-mail'ом и Паролем
Цитировать
#173 4pi.ru 24.08.2015 15:39
Цитирую Roman_s:
Пожалуйста подскажите, какой шаблон HTML-кода картинок? Прост путь не полный не пойму как настроить стандартный не парсит. http: //medvesti.com/news/world/32164-uchenie_golovnie_boli_vo_vremya_beremennosti__trevozhniy_simptom_oslozhneniy.html

Создайте тему на форуме, прикрепите туда экспортный файл вашей ленты и опишите проблему - поможем в рамках Форума, здесь очень сложно это делать.
Цитировать
#174 Mike 27.08.2015 07:02
Цитата:
Разрабатываем новую справочную систему сейчас как раз.
Когда ориентировочно ожидать справочную систему?
Цитировать
#175 Игорь 27.08.2015 07:06
Цитирую Mike:

Когда ориентировочно ожидать справочную систему?

Поддерживаю
Цитировать
#176 4pi.ru 27.08.2015 21:19
Цитирую PeepenTom:
В моем случае, ссылки на сайте в таком виде: - парсер их просто не находит.

Создайте тему на форуме или напишите в тех. поддержку.
Цитировать
#177 4pi.ru 27.08.2015 21:20
Цитирую Mike:
Цитата:
Разрабатываем новую справочную систему сейчас как раз.


Когда ориентировочно ожидать справочную систему?
Планируем запустить уже на следующей недели первый вариант.
Цитировать
#178 4pi.ru 27.08.2015 21:21
Цитирую Есентукий:


http://sait.ru/tekst-tekstteksttekst-echetekstteksttekst-teksttekstteksbezcift/
То бишь идет "домен.ру/транслит-заголовка-новости/"
Как такое парсить? Я вот так поставил /\S{4,30}/ но он тянет и пути к шаблону и т.д...

Ответили вам почтой
Цитировать
#179 Mike 02.09.2015 07:17
Цитирую 4pi.ru:
Цитирую Mike:
Цитата:
Разрабатываем новую справочную систему сейчас как раз.


Когда ориентировочно ожидать справочную систему?

Планируем запустить уже на следующей недели первый вариант.
Планы в силе?
Цитировать
#180 vatalev 19.09.2015 17:38
Цитирую 4pi.ru:
Цитирую Есентукий:


http://sait.ru/tekst-tekstteksttekst-echetekstteksttekst-teksttekstteksbezcift/
То бишь идет "домен.ру/транслит-заголовка-новости/"
Как такое парсить? Я вот так поставил /\S{4,30}/ но он тянет и пути к шаблону и т.д...

Ответили вам почтой


Можно мне тоже прислать.

Всё решил прошу прощения тупанул.
Цитировать
#181 SolarRunner 29.09.2015 16:05
Цитирую 4pi.ru:
Цитирую Есентукий:


http://sait.ru/tekst-tekstteksttekst-echetekstteksttekst-teksttekstteksbezcift/
То бишь идет "домен.ру/транслит-заголовка-новости/"
Как такое парсить? Я вот так поставил /\S{4,30}/ но он тянет и пути к шаблону и т.д...

Ответили вам почтой



Такая же проблема, прошу и мне прислать решение.

А так же прошу посоветовать решение:

URL индексной страницы: http://site/articles/
Сами статьи имеют урл вида http://site/translit-article-title/
В коде HTML отдаваемом сервером ссылки имеют вид:
href="/translit-article-title/"
Плагин собирая ссылки с главной пытается ходить по ссылкам: http://site/articles/translit-article-title/ таких нет
Цитировать
#182 4pi.ru 29.09.2015 21:01
Цитирую SolarRunner:

А так же прошу посоветовать решение:

URL индексной страницы: http://site/articles/
Сами статьи имеют урл вида http://site/translit-article-title/
В коде HTML отдаваемом сервером ссылки имеют вид:
href="/translit-article-title/"
Плагин собирая ссылки с главной пытается ходить по ссылкам: http://site/articles/translit-article-title/ таких нет


Создайте тему на форуме.
Цитировать

Добавить комментарий


Защитный код
Обновить

Copyright © 2014 - 2017 WPGrabber