В данном примере мы разберем настройку html-импорта новостей с сайта https://top.rbc.ru/, а точнее с его раздела Главные новости.
1) Выбираем Новая лента в плагине WPGrabber и в поле Наименование ленты пишем какое-либо название для нашей первой настройки импорта. Вы можете написать в данный параметр все что угодно, к примеру: Главные новости РБК.
2) В типе ленты у нас должно быть выбрано значение html
3) Следующий обязательный параметр, который нужно указать это URL индексной страницы. Это URL-адрес в строке браузера той страницы сайта, с которой мы будем собирать ссылки на необходимые нам новости.
В нашем случаем это адрес: https://top.rbc.ru/
4) Далее нам надо указать такой важный параметр как Кодировка HTML-страницы.
Кодировку страницы сайта можно узнать в ее исходном HTML-коде.
Теперь для удобства откройте страницу https://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 https-equiv="Content-Type" content="text/html; charset=ЗДЕСЬ КОДИРОВКА"/>
На некоторых сайтах кодировка не указана, тогда пробуйте значение: Исходная, или же WINDOWS-1251.
5) Теперь нам необходимо определить один из самых главных параметров (параметр: Шаблон ссылок), с которого начинается сбор ссылок на интересующие нас страницы сайта, которые мы хотим импортировать к себе на сайт.
Для того чтобы правильно задать параметр Шаблон ссылок, нужно сначала посмотреть на вид ссылок в исходном коде HTML страницы.
Для этого выделяем и копируем текст (или часть текста) первого или любого другого заголовка новости (т.е. непосредственно текст ссылки ведущей на страницу новости) на странице https://top.rbc.ru/, к примеру на момент написания данной статьи заголовок первой новости: "На Украине стартовали выборы в Раду"
Теперь переходим на открытую нами ранее вкладку исходного кода страницы https://top.rbc.ru/ и делаем поиск в ней по скопированному нами тексту заголовка. Для этого я нажимаю сочетание клавиш Ctrl + F и в поле поиска вставляю скопированный текст: "На Украине стартовали".
Обратите внимание на то, что совсем не обязательно искать весь текст заголовка, он может оказаться слишком длинным. Можно выделить его небольшую часть, как в этом примере и искать эту часть в исходом коде.
Так как данный текст может встречаться в исходном коде страницы не только внутри ссылок, но и в других местах, нам необходимо найти именно ту часть кода, где перед искомым текстом находится открытый html-тег ссылки: <a href="/ а после идет закрывающий тег </a>, в этом примере второе совпадение части текста (На Украине стартовали) оказалось именно таким:
Конкретно здесь, нас интересует именно тег A, вернее его свойство href, которое является URL-адресом данной ссылки. Из выше приведенного примера видно, что страница новости под заголовком "На Украине стартовали выборы в Раду" находится по адресу: https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46
Проанализируем структуру этого URL-адреса:
https://top.rbc.ru/слово/2-е цифры/2-е цифры/4-е цифры/некоторое кол-во букв и цифр
обратите внимание, что описав таким словесным способом этот адрес мы оставляем без изменений некоторые его части, а именно: адрес сайта https://top.rbc.ru, потому эта часть адреса остается неизменной для всех остальных ссылок, представленных на странице.
Теперь давайте посмотрим на другие ссылки к остальным новостям:
https://top.rbc.ru/textonlines/26/10/201 ... 29aa5eb36d
https://top.rbc.ru/society/26/10/2014/54 ... da6d160a8b
https://top.rbc.ru/politics/25/10/2014/5 ... 9fe42c1e93
https://top.rbc.ru/politics/26/10/2014/5 ... c840db65e6
https://top.rbc.ru/economics/25/10/2014/ ... 365c3f754f
Все выше перечисленные ссылки подходят по ранее описанный "словесный" шаблон. Для задания шаблона ссылок в 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-го и более символов.
Переписав начальную часть нашего шаблона мы получим следующее:
https://top.rbc.ru/\S{1,}/
На данном этапе мы могли бы записать весь шаблон ссылок в виде:
https://top.rbc.ru/\S{1,}/\S{2}/\S{2}/\S{4}/\S{1,}
однако некоторые части URL-адреса ссылок, содержат явные цифры, а не просто любые непробельные символы. Для описания именно цифр от 0 до 9 в регулярных выражения используется конструкция вида \d. Для указания количества подряд идущих цифр в выражении используется та же самая конструкция с фигурными скобками, а именно: \d{4} — означает 4-подряд идущие цифры, к примеру: 8976 или 6789 и т.д.
Перепишем наше выражение с учетом вхождения в него именно цифр а не всех символов:
https://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/\S{1,}
Данное выражение можно смело вставить в Шаблон ссылок, нажать на кнопку Применить, и после сохранения настроек ленты нажать на кнопку Тест импорта, чтобы убедится в правильности составления регулярного выражения поиска ссылок в тексте сайта.
Теперь обратите внимание, что Плагин нашел гораздо больше ссылок, чем нам нужно. Более того в наш список ссылок попали такие ненужные нам ссылки:
А также, неправильные (не работающие) ссылки вида :
https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46"
https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46">
Это всё потому, что конструкция \S{1,} собирает все не пробельные символы длинной от одного и больше. Т.е., в нашу выборку попадают и кавычки (") и треугольная стрелка вправо (>), которые не должны быть в URL-адресе ссылки.
Нас же интересуют только буквы и цифры в последней части URL-адресов ссылок:
https://top.rbc.ru/textonlines/26/10/201 ... 29aa5eb36d
https://top.rbc.ru/society/26/10/2014/54 ... da6d160a8b
https://top.rbc.ru/politics/25/10/2014/5 ... 9fe42c1e93
Когда нам нужно в регулярном выражении перечислить вхождение разных символов (набора символов), то мы можем использовать квадратные скобки. Выражение вида:
[\w\d]{1,}
буквально означает: любая одна буква или одна цифра или более подобных символов.
К примеру, под выражение вида (любые две буквы или цифры или и буквы и цифры и более подобных символов):
[\w\d]{2,}
попадут строки :
aa
b3
3g
bb432
g0
111
но, не попадут, строки вида:
11"
-7j
9
3_23
<bh
Таким образом, если мы перепишем наше выражение в виде:
https://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
Оно перестанет отлавливать ненужные и неправильные ссылки!
Вставьте это выражение в Шаблон ссылок, нажмите Применить, а затем Тест импорта и Вы увидите как плагин найдет уже всего 12 ссылок и все они будут правильными!
Для верности переходим на страницу https://top.rbc.ru/ и считаем кол-во ссылок на новости проверяя правильность настройки шаблона ссылок. На странице https://top.rbc.ru/ помимо 10 ссылок расположенных в центре страницы под наш шаблон попали еще 2 ссылки, расположенные в других частях страницы. В следующем уроке Вы сможете найти информацию о том, как выбрать ссылки только из определенной части начальной страницы.
Внимание! Если в режиме теста импорта у вас на экране отображается надпись Найдено ссылок: 0 — дальнейшая настройка других параметров ленты практически лишена смыла! Нет ссылок на новости — не будет импортированных записей в WordPress.
А если WPGrabber не находит ссылки на новости - значит вы сделали ошибку в написании регулярного выражения шаблона ссылок или же неправильно указали параметры: URL индексной страницы или Кодировка HTML-страницы.
Еще одно небольшое важное замечание по поводу правил написания регулярных выражений. Все дело в том что в регулярных выражениях формата PCRE, есть специальный набор символов или как еще их часто называют управляющие символы.
Приведем весь их перечень через запятую: ., *, +, ?, |, (, ), [, ], {, }, $, ^
Когда вы в регулярном выражении пишите к примеру символ точки (.)- то он не означает в прямом смысле простую точку в тексте. Точка в регулярном выражении — это служебный символ обозначающий вхождение любого символа алфавита, циферного символа, символа пробела и вообще любого другого символа. Т.е. точка в регулярном выражении — это вообще любой символ в тексте.
Таким образом под выражение:
https://top.rbc.ru/\S{1,}
попадут не только адреса вида:
https://top.rbc.ru/blog
https://top.rbc.ru/123
но также адреса вида:
https://top1rbc-ru/d343
или
https://top8rbc6ru/soc
Для того чтобы в регулярное выражение вставить именно символ точки, нужно перед управляющим символом поставить обратный слэш, т.е. выражение \. обозначает как раз таки обычную точку в тексте.
Таким образом, по правильному наш шаблон необходимо переписать в следующий вид:
https://top\.rbc\.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
т.е. экранировать в нем все вхождения точки как служебного символа.
Вы спросите, почему же наш шаблон даже в виде:
https://top.rbc.ru/\S{1,}/\d{2}/\d{2}/\d{4}/[\w\d]{1,}
сработал успешно? Ответ прост: точка в регулярном выражении, как я уже написал выше, обозначает любой символ, в том числе простую точку!
Если вы прокрутите страницу с результатом теста импорта ленты чуть ниже отображения ссылок вы увидите следующее:
Мы не задали правила выборки двух основных параметров для записей WordPress - это заголовок и текст.
6) Начнем с Заголовка — который при импортировании ленты будет заголовком создаваемых в WordPress записей (постов).
Для того чтобы WPGrabber нашел заголовок в тексте страницы определенной новости нам необходимо описать шаблон его поиска. Тут тоже используется формат регулярных выражений как и в описании Шаблона ссылок.
Итак, перейдем на сайт https://top.rbc.ru/, скопируем текст заголовка (или его часть) любой новости. В моём случае это заголовок новости: "На Украине стартовали выборы в Верховную раду". Далее перейдем по ссылке выбранной новости: https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46.
Попав на страницу новости, открываем ее исходный код (как открыть исходный код страницы было описано выше, используйте сочетание Ctrl + U). Произведем поиск нашего заголовка в исходном тексте страницы:
Обратите внимание, что в числе первого найденного включения (вхождения) заголовка на странице https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46, вы найдете следующий часть кода:
<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) Следующим важным этапом является поиск основного текста страницы.
Для поиска текста необходимо задать два параметра ленты: Начальная точка полного текста и Конечная точка полного текста. Снова переходим на страницу любой новости. К примеру, той же: https://top.rbc.ru/politics/26/10/2014/5 ... 6019aaeb46
Копируем часть начального текста (не обязательно с самого начала, можно в середине текста), открываем исходный код страницы, и производим поиск по этой части текста. Есть вероятность того, что этот текст будет встречаться у вас в исходном коде страницы не один раз, потому важно найти именно то вхождение, которое является началом текста новости на странице. Сравните текст в исходном коде и на самой странице, найдите его начало и конец.
Важной задачей правильного определения границ текста является нахождение уникальных частей HTML-кода или любых других конструкций (части текста и т.д.) до и после полного текста новости.
Итак, находим начальную точку текста:
Перед началом текста "Внеочередные выборы Верховной рады Украины проходят при усиленных мерах безопасности. Сколько выберут депутатов, зависит" мы видим тег <div class="article__overview__text">.
Итак, вставляем в поле Начальная точка полного текста строку:
<div class="article__overview__text">
Далее находим конец текста новости. Для этого также можно воспользоваться поиском по словам в последнем предложении текст новости:
и в коде:
Итак, в поле Конечная точка полного текста можно вставить:
<div class="article__photoreport">
Пример настройки импорта новостей с сайта top.rbc.ru
Модератор: Admin
- Admin
- Администратор
- Сообщения: 578
- Зарегистрирован: 22 ноя 2015, 12:18
- Откуда: СССР
- Благодарил (а): 49 раз
- Поблагодарили: 20 раз
- Контактная информация:
Пример настройки импорта новостей с сайта top.rbc.ru
Главная часть любого оружия, есть голова его владельца. Заказ лент WPGrabber
Re: Пример настройки импорта новостей с сайта top.rbc.ru
У кого нибудь получилось настроить по этому уроку?
Re: Пример настройки импорта новостей с сайта top.rbc.ru
На конец то получилось, то с титлом проблемы были, то с полным текстом. В итоге у вас выявил ошибочку в титле, а именно <meta name="title" content="(.*?)" /> после последней кавычки надо убрать пробел <meta name="title" content="(.*?)"/>. А с текстом не всегда нужно выписывать ближний тег к тексту, бывает, что в теге ещё один тег и оба они ещё в одном теге и именно открывающий и закрывающий эти теги тег, нужно как раз вписывать Всё понятно я надеюсь
-
- Администратор
- Сообщения: 135
- Зарегистрирован: 24 ноя 2015, 22:09
- Откуда: СССР
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Пример настройки импорта новостей с сайта top.rbc.ru
Урок старый, еще с сайта wpgrabber ru и служит только для примера.
А по сути после вторых ковычек вообще ни чего не нужно <meta name="title" content="(.*?)"
А по сути после вторых ковычек вообще ни чего не нужно <meta name="title" content="(.*?)"
- Admin
- Администратор
- Сообщения: 578
- Зарегистрирован: 22 ноя 2015, 12:18
- Откуда: СССР
- Благодарил (а): 49 раз
- Поблагодарили: 20 раз
- Контактная информация:
Re: Пример настройки импорта новостей с сайта top.rbc.ru
Подправил, добавил картинки для наглядности настройки.
Главная часть любого оружия, есть голова его владельца. Заказ лент WPGrabber
Re: Пример настройки импорта новостей с сайта top.rbc.ru
Спасибо! Просмотрел урок ещё раз, всё конечно так запутано может показаться новичку, но методом тыка и ошибок приходит понимание, простоты.
Re: Пример настройки импорта новостей с сайта top.rbc.ru
cell1983 видимо накололся уже на этот rbc.ru, судя по теме, что он вчера создал.
РБК у себя на сайте очень однозначно пишет:
---
Правила использования материалов интернет-сайта холдинга РБК
Использование материалов сайта разрешено только с письменного разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ» или соответствующего правообладателя. Вы можете задать свой вопрос по адресу [email protected].
При любом использовании материалов сайта в сети Интернет, как на возмездной, так и на безвозмездной основе, пользователь обязан указать источник в виде гиперссылки на сайт www.rbc.ru.
Цитирование материалов сайта допускается безвозмездно в объеме, оправданном целью цитирования, при этом ссылка на источник должна содержать указание на «РБК» и являться гиперссылкой на сайт www.rbc.ru или на страницу конкретного материала с rbc.ru.
Использование материалов сайта в соответствии с п.3 части 1 статьи 1274 Гражданского кодекса Российской Федерации без разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ» запрещается.
Запрещается автоматизированное извлечение информации сайта любыми сервисами без официального разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ».
---
Хотя лично я видел несколько очень сильных новостных сайтов, откуда ни одной исходящей ссылки на доноров нет. Как живут - непонятно. Может просто они настолько толстые и юристы у них настолько умные, что просто договариваются с донорами.
РБК у себя на сайте очень однозначно пишет:
---
Правила использования материалов интернет-сайта холдинга РБК
Использование материалов сайта разрешено только с письменного разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ» или соответствующего правообладателя. Вы можете задать свой вопрос по адресу [email protected].
При любом использовании материалов сайта в сети Интернет, как на возмездной, так и на безвозмездной основе, пользователь обязан указать источник в виде гиперссылки на сайт www.rbc.ru.
Цитирование материалов сайта допускается безвозмездно в объеме, оправданном целью цитирования, при этом ссылка на источник должна содержать указание на «РБК» и являться гиперссылкой на сайт www.rbc.ru или на страницу конкретного материала с rbc.ru.
Использование материалов сайта в соответствии с п.3 части 1 статьи 1274 Гражданского кодекса Российской Федерации без разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ» запрещается.
Запрещается автоматизированное извлечение информации сайта любыми сервисами без официального разрешения АО «РОСБИЗНЕСКОНСАЛТИНГ».
---
Хотя лично я видел несколько очень сильных новостных сайтов, откуда ни одной исходящей ссылки на доноров нет. Как живут - непонятно. Может просто они настолько толстые и юристы у них настолько умные, что просто договариваются с донорами.
Re: Пример настройки импорта новостей с сайта top.rbc.ru
А что вам стоит сделать ссылку на источник?
- Admin
- Администратор
- Сообщения: 578
- Зарегистрирован: 22 ноя 2015, 12:18
- Откуда: СССР
- Благодарил (а): 49 раз
- Поблагодарили: 20 раз
- Контактная информация:
Re: Пример настройки импорта новостей с сайта top.rbc.ru
Это же просто его вопрос, просто хочет услышать, как действовать в такой ситуации.
Никто с вами судится не будет, в худшем случае попросят удалить статью с сайта, в лучшем случае поставить ссылку на источник.
Главная часть любого оружия, есть голова его владельца. Заказ лент WPGrabber