Парсер обхода страниц на Python
В данной статье обсудим инструментарий обхода страниц в парсере/скрапере на Python. Напомню, что мы реализуем программу скачивания содержимого с сайтов, имеющих типичную структуру из набора страниц со ссылками на описания товаров либо произошедшие события (например, спортивные мероприятия). Общая схема парсера имеет следующий вид (подробнее здесь):
Ранее мы показали, как осуществлять обход ссылок на записи на одной странице (подробнее здесь) и сбор данных по каждой ссылке на примере конкретного сайта (подробнее здесь). Теперь напишем метод циклического обхода страниц и встроим в него уже реализованный функционал.
Ниже представляю код соответствующего метода обхода страниц start_items_parser класса ItemsParser и его конструктора:
При этом get_items_params мы реализовали ранее (обход ссылок на записи на одной странице), а get_one_item_params, которая скачивает содержимое по заданной ссылке, возвращает словарь, объединяющий данные, полученные из каждого тега (подробнее здесь и здесь).
Для страницы с описанием одного поединка на http://www.ufcstats.com get_one_item_params можно задать в классе UFCFightsParser, наследующем ItemsParser, следующим образом: