+7 (495) 788-06-63

Создаем фид данных: что умеет сервис Textus

Textus — бесплатный инструмент для создания обновляемых фидов данных. Хотите узнать, как он работает? Давайте вместе разбираться на «живых» примерах.

В качестве затравки обозначим перечень возможностей сервиса:

  • генерация фидов данных в формате XML и CSV;
  • экспорт результатов парсинга на Google Drive в формате Google Spreadsheets;
  • настройка расписания ежесуточного обновления фида;
  • отбор страниц для парсинга по маске URL;
  • очистка контента фида от HTML-символов.

Textus создан командой Garpun прежде всего для тех, кто занимается автоматизацией контекстной рекламы, но не имеет фида, содержащего описание рекламных объектов. Благодаря новому инструменту рекламодатели могут распарсить контент сайта и сформировать фид, даже не владея навыками веб-разработки (конечно, при этом необходимо базовое понимание HTML и CSS).

Помимо автоматизации контекстной рекламы, фид пригодится и в других случаях, например для мониторинга сайтов конкурентов.

Вместо сухой теории взглянем на работу сервиса на конкретном примере. Для этого мы решили распарсить страничку с отраслевыми мероприятиями, опубликованную на сайте Seonews.

Регистрация

Здесь всё просто. Проходим регистрацию на соответствующей странице, подтверждаем e-mail и авторизуемся в системе.

Конфигурация парсера

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

Для этого перейдем в раздел Parser configuration и нажмем на кнопку Add parser.

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

  • HTML (большинство случаев)
  • XML

Затем следует пара настроек-чекбоксов:

  • Include empty tags — включать в фид теги с пустым содержанием
  • Remove HTML symbols — очистка содержимого фида от HTML-символов

Подходим к самому интересному. Теперь нужно задать настройки тегов (столбцов) нашего фида. Для этого, прежде всего, необходимо указать Текстусу путь к тем элементам сайта, содержимое которых мы хотим забрать.

Делается это с помощью CSS-селекторов. Звучит страшно, но всё довольно просто. Перейдем на страничку сайта с мероприятиями. В браузере Google Chrome кликнем правой кнопкой мыши по интересующему элементу и выберем пункт «Посмотреть код». В открывшейся консоли мы увидим выделенную строку кода, содержащую название мероприятия:

<a href="/calendar/svobodnoe-kope/">Свободное копье</a>

Кликнем по ней правой кнопкой мыши выберем Copy > Copy selector. Вот мы и скопировали CSS-путь к интересующему нас элементу.

Выглядеть он будет следующим образом:

#news_list_pageID > div > div > div > div.calendar-wrapper > div > div.cal-content.future > div:nth-child(1) > div > div > span.name > a

Итак, вышеприведенный CSS-путь соответствует названию мероприятия. Подобным образом мы копируем CSS-пути и к другим элементам, например, к дате мероприятия и предполагаемому числу участников.

Дабы не перегружать повествование излишними деталями, перейдем к обзору финального варианта парсера.

Рассмотрим подробнее настройки некоторых тегов.

Тег Event. Он соответствует «карточке» каждого мероприятия и выступает как бы служебным тегом, в который помещается вся остальная информация по событию.

Вот его CSS-путь:

#news_list_pageID > div > div > div > div.calendar-wrapper > div > div.cal-content.future > div:nth-child(1)

Обратите внимание, в настройках тега Event в Текстусе указан немного другой путь:

#news_list_pageID > div > div > div > div.calendar-wrapper > div > div.cal-content.future > div

Мы намеренно отбросили у последнего селектора div псевдокласс nth-child(1), поскольку он указывает лишь на первую карточку мероприятия, а мы хотим забрать контент всех карточек.

В поле Property указываем название тега, по которому мы сможем однозначно идентифицировать его в фиде.

Следом выбираем тип данных (Data type):

  • string — строковое значение
  • url — ссылка
  • number — число

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

Наконец, остается определиться с полем Source (источник). Доступны варианты:

  • default — автоматическое определение типа источника контента;
  • text — по указанному CSS-пути необходимо забрать текстовое содержимое;
  • attribute — необходимо забрать значение конкретного атрибута — того, который вы укажете в появившемся поле.

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

Чтобы зафиксировать настройки тега, нажимаем на кнопку «Сохранить» .

Тег Name. Все последующие теги мы делаем вложенными в тег Event, поскольку они описывают карточку каждого мероприятия. Для того, чтобы сделать тег вложенным, в интерфейсе конфигуратора парсера захватите блок с настройками тега мышью и сдвиньте вправо.

В теге Name мы задаем путь к названию события. Полный CSS-путь к элементу будет выглядеть следующим образом:

#news_list_pageID > div > div > div > div.calendar-wrapper > div > div.cal-content.future > div:nth-child(1) > div > div > span.name > a

Но поскольку путь до карточки мы уже задали в родительском теге Event, во вложенном теге Name остается лишь уточнить остаток CSS-пути:

div > span.name > a

Тег Type. Остальные теги задаются схожим образом. Для добавления нового тега нажмите на .

Остановим наше внимание на теге Type (тип мероприятия). Путь к этому элементу выглядит следующим образом:

#news_list_pageID > div > div > div > div.calendar-wrapper > div > div.cal-content.future > div:nth-child(1) > div > div > span.event-tag.event-tag-2 > a

После удаления части пути до родительского тега остается:

div > span.event-tag.event-tag-2 > a

Почему же мы селектор  span.event-tag.event-tag-2 в настройках тега заменили на span.event-tag?

Чтобы понять это, давайте внимательней посмотрим на фрагмент исходного кода:

<span class="event-tag event-tag-2"><a href="/calendar/rubric/internet-reklama/">Интернет-реклама</a></span>

Дело в том, что название класса event-tag event-tag-2 соответствует мероприятиям с пометкой «Интернет-реклама». Если бы мы настроили тег подобным образом, в наш фид попали бы не все мероприятия, а лишь те, что относятся к интернет-рекламе. Поэтому мы отбрасываем излишнее уточнение в названии класса.

После настройки всех тегов можно проверить заданную структуру фида, взглянув на форму справа «Example of XML structure».

По окончании конфигурации парсера не забудьте нажать на кнопку Save.

Создание проекта

Итак, самое сложное позади. Теперь давайте создадим проект. Для этого перейдем на вкладку Project, введем название проекта, выберем созданный ранее конфигуратор парсера и нажмем на кнопку Add.

В появившейся форме нужно задать некоторые настройки для нашего проекта. Давайте пройдемся по основным пунктам.

 

  • Last result static link — ссылка на ваш фид с актуальными результатами парсинга
  • Блок Project — название проекта и выбранный конфигуратор парсера
  • Urls in project — ссылки на страницы, которые будем парсить, или на карту сайта. Поскольку мы будем парсить одну страничку со списком мероприятий, у нас указана одна ссылка. Если нужно добавить несколько url-ов, нажимайте на плюсик «+» справа от поля.
  •  Url's mask — при переключении этого свитчера в режим ON появится поле указания маски URL. C ее помощью можно ограничить набор страниц, полежащих парсингу. В маске поддерживается оператор * (звездочка). Он заменяет один или несколько произвольных символов. Так как мы парсим лишь одну страничку, для нас эта настройка неактуальна.
  • Merge results and remove duplicates — при активации этой настройки дублирующиеся строчки будут «схлопнуты» в одну.
  • Default format — формат фида. Доступны варианты XML и CSV. Если в разделе Settings вы подключите к своему аккаунту Google Drive, появится возможность экспорта результатов парсинга на облачный диск в формате Google Spreasheets.
  • Hours when parser is start — выбор часа, в который ежесуточно будет происходить обновление фида.

 

Получаем фид

После указания всех настроек жмем Save и снова переходим в раздел Project. Как только произойдет парсинг (по заданному в настройках проекта расписанию). В поле Last result появится ссылка на актуальный фид.

Кликаем по ней и видим наш XML-фид.

Вот и всё! Теперь можем использовать фид так, как нам заблагорассудится.

Напоследок, немного об ограничениях в Текстусе. На текущий момент пользователи могут создавать не больше двух парсерсов и задавать частоту обновления фида не чаще раза в сутки.

Если вам необходимо расширить действующие лимиты — обращайтесь на [email protected].

Подробное руководство по работе с сервисом Textus опубликовано здесь.

Свои пожелания по развитию проекта можно передать нам через форму опроса.

Онлайн консультанты
Наши клиенты