|

Пример настройки импорта статей с forexlive.com для WPGrabber


AliExpress WW


1) Создаем новую ленту в настройках плагина WPGrabber для Wordpress.
В строке « Наименование ленты» можно записать любое имя нашей настройки импорта, я обычно пишу URL без протокола, например: « forexlive.com/technical-analysis».

2) Тип ленты устанавливаем html.

3) «URL индексной страницы» — адрес раздела сайта, с которого будем собирать ссылки на копируемый контент.
У нас этот URL: «www.forexlive.com/technical-analysis» 
4) Обязательно надо установить параметр «Кодировка HTML-страницы». Кодировку страницы сайта мы ищем в исходном HTML-коде. Нажимаем сочетание клавиш Ctrl + U или кликнуть правой кнопкой мыши и выбрать пункт «Просмотр кода страницы» (для Google Chrome), или «Исследовать элемент» (для Mozilla Firefox).

Ищите в исходном html-коде страницы подобную строку:
<meta http-equiv=«Content-Type» content=«text/html; charset=«ЗДЕСЬ КОДИРОВКА» />


Пользуйтесь поиском браузера (Ctrl + F) и вводите слово charset.

У нас это: <meta charset=«UTF-8» />
Соответственно устанавливаем в поле «Кодировка HTML-страницы» кодировку UTF-8
5) Следующее поле «Шаблон ссылок», с помощью которого идет сбор ссылок на статьи для скрапинга (граббинга), для импорта на свой сайт. Для правильного заполнения параметра «Шаблон ссылок», в WPGrabber необходимо определить вид ссылок в коде страницы.
Для этого берём любой заголовок. У нас первый заголовок контента носит название
«Forex technical analysis: USDJPY moves to the red on the day.»

Жмём «Просмотреть код»

видим URL-адрес данной ссылки в теге A. Мы видим, что страница статьи под заголовком « Forex technical analysis: USDJPY moves to the red on the day.» расположена по адресу URL: //www.forexlive.com/technical-analysis/!/forex-technical-analysis-usdjpy-moves-to-the-red-on-the-day-20171116

Рассмотрим структуру этого URL-адреса:
//www.forexlive.com/technical-analysis/!/ некоторое количество букв и знаков

Важно то, что эта часть URL фиксированная:
//www.forexlive.com/technical-analysis/!/

Т.к. эта часть URL остается постоянной для всех других ссылок, идущих на странице.

Рассмотрим остальные ссылки:

www.forexlive.com/technical-analysis/!/the-us-dollar-is-a-little-lower-after-the-data-20171116
www.forexlive.com/technical-analysis/!/the-gbp-is-the-strongest-and-the-nzd-is-the-weakest-20171116
www.forexlive.com/technical-analysis/!/forex-technical-analysis-eurusd-waffling-but-may-be-trying-to-base-more-20171116
www.forexlive.com/technical-analysis/!/a-snapshot-of-the-winners-and-losers-so-far-today-20171116
www.forexlive.com/technical-analysis/!/forex-technical-analysis-gbpusd-hanging-between-ma-levels-20171116
www.forexlive.com/technical-analysis/!/forex-technical-analysis-eurgbp-returns-back-to-support-20171115
www.forexlive.com/technical-analysis/!/eia-natural-gas-storage-change-18b-20171116
www.forexlive.com/technical-analysis/!/stocks-snap-back-after-fall-over-the-last-few-day-decline-20171116
www.forexlive.com/technical-analysis/!/activity-has-slowed-down-in-ny-afternoon-trading-20171115
www.forexlive.com/technical-analysis/!/forex-technical-analysis-gbpjpy-caught-in-the-down-and-up-rinse-cycle-20171115
www.forexlive.com/technical-analysis/!/forex-technical-analysis-usdjpy-tests-200-bar-ma-on-4-hour-chart-20171115
www.forexlive.com/technical-analysis/!/be-aware-key-trend-line-tested-in-the-audusd-20171115
www.forexlive.com/technical-analysis/!/eurusd-moves-below-intraday-ma-20171115
www.forexlive.com/technical-analysis/!/usdjpy-following-stocks-lower-20171115
www.forexlive.com/technical-analysis/!/us-major-indices-open-lower-20171115
www.forexlive.com/technical-analysis/!/usdcad-looks-toward-50-midpoint-target-20171115


Все эти ссылки подходят под наше описание шаблона. Для корректного заполнения поля «шаблон ссылок» в WPGrabber необходимо изучить формат описания регулярных выражений PCRE.

Давайте поймем логику описания шаблона ссылок:
У нас меняющиеся значения это: the-us-dollar-is-a-little-lower-after-the-data-20171116, usdcad-looks-toward-50-midpoint-target-20171115 и stocks-snap-back-after-fall-over-the-last-few-day-decline-20171116
У этих значений разное количество символов в длину
Они возможно могут включать в себя цифры
Не может быть только символа пробела, т.к. в URL они запрещены.
Наши URL: forex-technical-analysis-gbpusd-hanging-between-ma-levels-20171116, usdcad-looks-toward-50-midpoint-target-20171115 и прочие состоят из многих символов (букв, цифр и символов дефис).

Чтобы правильно работал плагин WPgrabber нам нужны только буквы, цифры и символ «-»

Соответствующее регулярное выражение может выглядеть так: technical-analysis/!/[\w\-]*

[] — обозначает класс символов,
\w — Буквенный или цифровой символ
или знак подчёркивания
* — Квантификатор после символа, символьного класса или группы определяет, сколько раз предшествующее выражение может встречаться.

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

Вставьте этот technical-analysis/!/[\w\-]* код в Шаблон ссылок, жмите «Применить» и «Тест импорта» и плагин выдаст 25 ссылок!

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

Когда при тесте импорта записей в WordPress в результате видим сообщение «Найдено ссылок: 0», то это говорит нам о том, что допущена ошибка в написании шаблона ссылок WPGrabber.
Проверяйте все настройки заново.

Есть прекрасная страница « Шпаргалка по регулярным выражениям »

а также онлайн тестер regex101.com/
Более основательно — книга Джеффри Фридла «Регулярные выражения»

Делаем тестовый импорт ленты и получаем результат со следующей ошибкой:

«Материал не будет сохранен по причине отсутствия в нем контента»

Теперь надо написать правила для правильного импорта заголовка и текста записейWordPress.
Заголовок при импорте ленты будет заголовком создаваемых в WordPress записей или постов.
Перейдем на сайте на саму страницу статьи:
www.forexlive.com/technical-analysis/!/forex-technical-analysis-usdjpy-moves-to-the-red-on-the-day-20171116

Открываем ее исходный код и ищем наш заголовок:

Можно взять из тайтла:
<title>Forex technical analysis: USDJPY moves to the red on the day. </title>

или из <meta property=«og:title» content=«Forex technical analysis: USDJPY moves to the red on the day. » />
Я и взял этот вариант
Чтобы обозначить выборку определенной части текста из строки используются символы круглых скобок ( ) и .*?

Этот код будет включать в себя любые символы пока не дойдет до следующего символа после нее, поэтому делаем шаблон заголовков таким:
<meta property=«og:title» content="(.*?)" />

Вставляем эту настройку в поле «Шаблон заголовка», нажмем кнопку «Применить» и кнопку «Тест импорта».
В результате WPGrabber нашёл нужные нам заголовки контента:

Как заполнять поле «Полный текст» в настройках плагина WPGraber?
Нужно установить параметры ленты «Начальная точка полного текста» и «Конечная точка полного текста».

Смотрим исходный код копируемого поста.
Находим начальную точку текста:
<article id=".*?" data-art-id=".*?">
Далее находим конец текста статьи в коде:
В строке «Конечная точка полного текста» вставляем такой код:
</article>
Есть проблема:

Для этого используем вкладку «Обработка».
И включаем «дополнительные шаблоны обработки»

Адрес картинок указан без протокола, начинается с //
и в этом проблема.
Пишем «Шаблон поиска» для картинок:
|<img[^>]+src="//(.*?)"|is

«Шаблон замены»:
<img src=«http://$1»

Удаляем автора и надпись share:
|<h1 id=(.*?)</h1>|is
|<div class=«tahub-h3-sep»(.*?)</div>|is
|<div class=«col-md-2 col-sm-2 col-xs-2»>(.*?)</div>|is

Жмем кнопку «Применить» и кнопку «Тест импорта»

Смотрим, что всё нормально.
Поздравляю мы настроили ленту для импорта.
Скачать эту ленту можно здесь: forexlive_com_technical-analysis.xml
Оригинал статьи: wpgrabber-tune.blogspot.ru

00:22
[addon]1043[/addon]
Реклама
|
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.