Внимание! Изменять какие-либо файлы в папках запрещено!
У скрипта есть боевая и тестовая версии. Боевая лежит в основной папке – retail-prices-parser, тестовая в подпапке debug. Файл конфигурации – parser.config, его стоит использовать в качестве примера/эталона.
Задача: создать новый config файл, который будет наполнен xpath путями и настройками по 30 новым сайтам. Протестировать работоспособность на нескольких примерах ссылок с сайта. Исключить ошибки. Список сайтов – docs.google.com/spreadshe... Вам нужно обработать 1 кластер (пронумерованы в столбце Batch#), в кластере 30 сайтов. Точный кластер обсудим с вами в чате, зафиксирую имя/ник в таблице, т.к. задачу делим по нескольким подрядчикам.
Скрипт проверяет/берет (параметры, которые нужны в config файле): • открывается ли указанная страница, нет ли там ошибки – new_notFound • price и currency всех товаров (их лотов), в зависимости от того, что доступно на сайте и что есть в БД, возможные значения 1 bottle, 2, 3, 6, 12, 24 bottles. Изменения фиксирует в new_price и new_currency. • outOfStock. Если находит, что товар помечен, как отсутствующий, то ставит new_outOfStock=true. • inStock – Если у какого-либо E-shop специально помечено, что товар есть в наличии (в случаях, когда нет пометки, что товара нет в наличии) • excludesTax / includesTax – пометку, является ли взятая цена ценой с налогом или без налога • new_image – берет изображение товара
Для отладки развернута страница в Google Colab для запуска отладки скрипта по ссылке – colab.research.google.com...
(!) Работать нужно только с папкой debug. Результат работ – новый config файл, нужно создать его и добавить в папку debug, назвать "parser_ваше_имя_дата.config".
Внимание! Сам файл parser.config трогать нельзя! Задача в том, чтобы создать такой же файл (но с другим названием) с результатом вашей работы.
Дополнительная информация:
Скрипт запускается ежедневно в 8.00 UTC, работает примерно сутки.
Ошибки (на будущий анализ, следующий этап) Все ошибки/несоответствия, найденные на страницах, помечаются в столбце new_error в файлах в папке logs. По таким записям с ошибками ничего не передается в БД. Известные типы ошибок: • "Price is not found even..." – Ошибка выдается, если не сработали ни outOfStock, ни notFound, ни price и currency. По ней можно отслеживать некорректные ссылки. • "Не найден обработчик..." – Если в config файле не прописаны xpath для конкретного сайта, нет настроек на него, то будет выдана ошибка "Не найден обработчик для сайта [название сайта]". • "Required currency not found" – на странице не найдена валюта, указанная в БД. • "Exception: 'NoneType' object has no attribute 'group'" – ничего не получилось извлечь по регулярному выражению.
Доп комментарии, примечания: • пакет, который использован для работы с xpath, для обращения к атрибутам использует img/@src • изображения иногда не вытаскиваются, если xpath указан туда, где загрузка изображения lazy. Там, где url присутствует в месте без lazy лучше брать оттуда • в parser.config файле есть мэпинг валют. Если в мэпинге нет того, что извлеклось с сайта, то в результе будет просто то, что извлеклось. Поэтому записи типа GBP -> GBP добавлять не надо. • в config файле есть поле replace. В основном используется для корректного отображения цены, когда где-то используется запятая для отделения тысяч, или есть лишний пробел, что приводит к ошибке Price is not a number.