Формулировка проблемы: необходима возможность
загрузки новостей и комментариев к новостям из источников, не
поддерживающих формат RSS, в систему
Arta Intelligence
.
Решение: Чтобы загрузить новости и/или комментарии к новости из источника, не поддерживающего RSS, необходимо в модуле администрирования добавить новый источник, указав при этом тип источника — «Веб-сайт без RSS».
«Название» — свободный ввод текста, обязательное поле.
«Тип источника» — combobox из двух значений:
«Веб-сайт с RSS» — функционал, реализованный ранее;
«Веб-сайт без RSS» (выбрано по умолчанию).
«Страны» — функция не изменилась;
«Шаблон для комментариев»;
«Шаблон для получения новостных ссылок»;
«Шаблон для заголовка и содержимого статей (новостей)».
Все шаблоны формируются с помощью расширения для браузера Google Chrome (Chromium) Arta Extension 2.2.
Как установить расширение для Google Chrome (Chromium)?
Скачать на компьютер непосредственно архив с расширением «chrome-ext_v2.2.zip» (лежит в Хранилище/Департамент производства/08 - DIKW), распаковать архив.
Перейти в браузере Настройки → Расширения.
Методом drag-and-drop перенести файл «chrome-ext.crx» в поле расширений.
Проверить, чтобы галочка «Включено» напротив появившегося расширения «Arta Extension 2.2» была активирована.
Расширение состоит из двух основных элементов:
На странице в верхней части добавляется компонент, в котором настраиваются шаблоны для текущей страницы.
Рядом со строкой поиска появляется значок, с помощью которого можно просмотреть созданные шаблоны (хранилище шаблонов).
Компонент, располагаемый на странице включает в себя:
Панель с кнопками:
«Комментарии» — для создания нового шаблона для комментариев;
«ФинишКомментарий» — для сохранения шаблона для комментариев в хранилище;
«Новости» — для создания нового шаблона для новости;
«ФинишНовости» — для сохранения шаблона для новости в хранилище.
«Все ссылки на странице» — отображает все ссылки, которые есть на данной странице сайта.
«Выбранные ссылки на странице (клавиша z
)» —
отображает ссылки, которые выбрал пользователь.
Для выбора ссылки можно использовать стрелочки вправо (для добавления) и влево (для удаления), предварительно выделив перемещаемую ссылку.
Для выбора ссылки вручную необходимо, чтобы фокус был непосредственно на странице сайта, навести курсор на ссылку и нажать соответствующую клавишу.
«Regex шаблон выбранных ссылок» — отображает шаблон выбранных ссылок .
Примечание: Чем больше выделенных ссылок, тем точнее генерируется шаблон выбранных ссылок.
№ |
Для нажатой кнопки «Комментарии» |
Для нажатой кнопки «Новости» |
5 |
«Выбранные блоки комментариев (клавиша
|
«Выбранный блок заголовков (клавиша |
6 |
«Выбранный блок новостей (клавиша | |
7 |
«Шаблон комментариев» — отображает шаблон выбранных блоков комментариев. Примечание: Чем больше выделенных комментариев, тем точнее генерируется шаблон выбранных блоков комментариев. |
«Шаблон заголовка» — отображает шаблон выбранных блоков заголовков. Примечание: Чем больше выделенных заголовков (если таковых несколько) тем точнее генерируется шаблон выбранных блоков заголовков. |
8 |
«Шаблон новости» — отображает шаблон выбранных блоков новостей (если таковых несколько вообще). Примечание: Чем больше выделенных комментариев, тем точнее генерируется шаблон выбранных блоков новостей. |
Шаблон для комментариев
Поле не обязательно для заполнения, он необходим для получения комментариев по новостям (статьям) добавляемых источников.
Как сформировать шаблон для комментариев в расширении?
Перейти на сайт — источник новостей (например dialog.kz).
Перед началом создания шаблона очистить хранилище шаблонов (во избежание накладывания шаблонов разных сайтов). Для этого кликнуть на иконку расширения и нажать «Очистить хранилище».
На странице сайта войти в любую новость. По этой новости будет создаваться шаблон для всего данного сайта. Перейти к блоку комментариев.
Навести курсор на текст комментария (на странице выделяются соответствующие блоки) и нажать клавишу x (независимо от раскладки клавиатуры нажимать на английскую клавишу).
Выбранный комментарий выделится красным цветом, в компонент добавится этот комментарий и сформируется по нему шаблон.
Последнее действие необходимо проделать несколько раз (для более точных результатов).
При удалении блока комментария из выделенного, он все равно останется красным.
Если в шаблоне ссылки содержится знак ?
, то
его надо экранировать
^?cpage=.*$» → «^\\?cpage=.*$
Нажимается кнопка «ФинишКомментарий», нажимается иконка расширения.
Шаблон для комментариев получается с полученного шаблона :
{ "host":"dialog.kz", - хост новостного сайта "input":["?cpage=2#comment","?cpage=1#comment"], - массив выделенные страницы комментариев "pattern":"^\?cpage=.$", - regex шаблон* url страницы комментариев (для постраничного обхода всех страниц) "comment":{ "input":["html body div#wrapper div#main div#content div.twocol div.content div#comment div.comment.nextLevel div.body p","html body div#wrapper div#main div#content div.twocol div.content div#comment div.comment.unloged div.body p"], - массив выделенных блоков комментариев "header":"", -шаблон блока заголовка "pattern":"html body div#wrapper div#main div#content div.twocol div.content div#__comment div.body p" - шаблон блока комментария } }
Шаблон для получения новостных ссылок
Шаблон для заголовка и содержимого статей (новостей)
Поля обязательны для заполнения, они необходимы для формирования ссылки на каждую новость (статью).
Как сформировать шаблоны для новостей в расширении?
Перейти на сайт — источник новостей (например dialog.kz).
Перед началом создания шаблона очистить хранилище шаблонов (во избежание накладывания шаблонов разных сайтов). Для этого кликнуть на иконку расширения и нажать «Очистить хранилище».
На странице сайта войти в любую новость. По этой новости будет создаваться шаблон для всего данного сайта.
Навести курсор на ссылки на новости (на странице выделяются
соответствующие блоки) и нажать клавишу z
(независимо от раскладки клавиатуры нажимать на английскую
клавишу).
Выбранная ссылка выделится красным цветом, в соответствующий компонент добавится эта сылка и сформируется по ней регулярное выражение.
Последнее действие необходимо проделать несколько раз (для более точных результатов).
Навести курсор на заголовок новости (на странице выделяются
соответствующие блоки) и нажать клавишу v
(независимо от раскладки клавиатуры нажимать на английскую
клавишу).
Выбранный заголовок выделится красным цветом, в компонент добавится этот заголовок и сформируется по нему шаблон.
Навести курсор на текст новости (на странице выделяются
соответствующие блоки) и нажать клавишу x
(независимо от раскладки клавиатуры нажимать на английскую
клавишу).
Выбранный текст новости выделится красным цветом, в компонент добавится этот текст и сформируется по нему шаблон.
При удалении блоков заголовка и текста новости из выделенного, они все равно останутся красными.
Если в шаблоне ссылки содержится знак ?
, то его
надо экранировать ^?cpage=.*$» → «^\\?cpage=.*$
.
Нажимается кнопка «ФинишКомментарий», нажимается иконка расширения.
Шаблон для получения новостных ссылок получается с полученного шаблона :
{ "host":"dialog.kz", "input":["?lan=ru&id=81&pub=3358","?lan=ru&id=93&pub=3357","? lan=ru&id=81&pub=3358"], "pattern":"\?lan={2}&id=\d&pub=\d", "comment":{ "input":[], "header":"", "pattern":"" } }
а именно \?lan=.{2}&id=\d*&pub=\d*
.
Заполняется поле «Шаблон для получения новостных ссылок» выбранным
шаблоном \?lan=.{2}&id=\d*&pub=\d*
Шаблон для заголовка и содержимого статей (новостей) получается с полученного шаблона :
{ "host":"dialog.kz", "input":[], "pattern":"", "comment":{ "input":["html body table tbody tr td table tbody tr td table tbody tr td table tbody tr td table tbody tr td.paragraph-body div"], "header":"html body table tbody tr td table tbody tr td table tbody tr td table tbody tr td h1", "pattern":"html body table tbody tr td table tbody tr td table tbody tr td table tbody tr td table tbody tr td.paragraph-body div" } }
Проверить полученные шаблоны на валидность можно следующим ресурсом: http://jsonlint.com/