February 5, 2021

Парсер обхода страниц на Python

В  данной статье обсудим инструментарий обхода страниц в парсере/скрапере  на Python. Напомню, что мы реализуем программу скачивания содержимого с  сайтов, имеющих типичную структуру из набора страниц со ссылками на  описания товаров либо произошедшие события (например, спортивные  мероприятия). Общая схема парсера имеет следующий вид (подробнее здесь):

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

Ниже представляю код соответствующего метода обхода страниц start_items_parser класса ItemsParser и его конструктора:

При этом get_items_params мы реализовали ранее (обход ссылок на записи на одной странице), а get_one_item_params,  которая скачивает содержимое по заданной ссылке, возвращает словарь, объединяющий данные, полученные из каждого тега (подробнее здесь и здесь).

Для страницы с описанием одного поединка на http://www.ufcstats.com get_one_item_params можно задать в классе UFCFightsParser, наследующем ItemsParser, следующим образом: