51.17K

Семинар по настройке источников 19.03.2024

1.

Пример настройки сборщика news
Источник: https://www.poderpopular.hn/titulares.php
Расписание: https://base.core.talisman.ispras.ru/periodics/1868/show
Анализ:
1) По адресу находится понятная лента
2) Пагинация не требуется

2.

Шаг 1 - Тестовый запуск
Пробуем запустить на news сборщике
1. Создаём расписание
2. Выбираем сборщик news(utility)
3. Добавляем аргумент url
4. Статус - Выключено
5. Заходим в расписание
6. Нажимаем “Принудительно запустить”
7. Переходим в запуск
8. Заходим в меню логов и ожидаем либо конца запуска, либо аномального
поведения

3.

Шаг 2 - Анализ результатов теста
В логах отображается надпись: “Received non-feed response for {url}”, это
означает, что сборщик не нашёл rss-ленты(feed) у источника.
Есть 2 варианта действий:
1) Найти ленту вручную и изменить url
2) Изменить режим работы сборщика
Проще изменить режим работы на news_traverse (режим обхода всех ссылок,
которые сборщик находит на странице), однако это может привести к
необходимости фокусировки сборщика

4.

Шаг 3 - Анализ изменений и донастройка
1) Добавляем в расписание аргумент news_crawler со значением
news_traverse
2) Создаём принудительный запуск
3) Переходим в логи запуска
4) Замечаем строку: “{url} Probability of news: {number}”
5) Проверяем указанные в логе url
6) В нашем случае были переходы по страницам разделов, и не было
переходов по страницам новостей. Необходимо сфокусировать сборщик

5.

Шаг 4 - Фокусировка сборщика
1) Переходим на ресурс
2) Находим интересующую нас ленту новостей
3) Подбираем для неё селектор(либо через плагин, либо вручную)
a)
b)
Вручную:
i)
Кликаем ПКМ на области интересующей ленты и выбираем кнопку “inspect”(просмотр кода элемента)
ii) Открывается html код страницы. Ищем элемент, внутри которого содержатся только наши целевые
ссылки
iii) Подбираем уникальный селектор (div.card-body)
WebScraper
i)
Создаём в любой тестовой карте новый селектор
ii) Нажимаем кнопку выделения селектора на странице
iii) Выделяем нужную область
iv) Подтверждаем, копируем селектор (div.card-body)
4) Добавляем в расписание сбора аргумент restrict_css, в поле значения вводим селектор
5) Делаем запуск.
6) Заходим в меню логов и ожидаем либо конца запуска, либо аномального поведения

6.

Шаг 5 - Анализ изменений и донастройка
1) В логах опять замечаем строку: “{url} Probability of news: {number}”, но в
этот раз только 1 адрес. Это означает, что нам удалось сузить область
сбора ссылок, но сборщику не удаётся достать целевые ссылки
2) Вероятнее всего это происходит из-за того, что ссылки указаны в
ресурсе нетипичным способом, поэтому идём уточнять ссылку
3) Находим в коде страницы ссылку в теге form в атрибуте action
4) Подбираем селектор - form#verultimasnoticias::attr(action)
5) Добавляем в расписание аргумент article_link_selector, значение полученный селектор
6) Проверяем результат

7.

Примеры карт обхода
Пример настройки пагинации кликом по динамической кнопке:
https://base.core.talisman.ispras.ru/crawlers/645/show?tab=sitemap
Пример настройки пагинации прокруткой страницы:
https://base.core.talisman.ispras.ru/crawlers/629/show?tab=sitemap
Пример настройки стандартной пагинации по ссылкам:
https://base.core.talisman.ispras.ru/crawlers/1003/show?tab=sitemap
English     Русский Правила