Нужно реализовать более стабильную проверку сайтов партнёров на работоспособность, чем есть сейчас.
У скрипта есть:
- Трекинговая ссылка партнёра - 2-3 редиректа через трек платформы партнёра с переходом на целевую страницу
- Список стран, из которых можно осуществлять переход по ним
На данный момент, делается так: берётся ссылка и выбираются прокси согласно указанным странам. Затем, перейти по ссылке пытается Селеуним. Забирает тайтл с страницы и сохраняет. Все последующие проверки, сравнивается полученный тайтл с сохранённым. Если тайтл не получен или получен другой, возникает ошибка, то пробуется фантомом или обычным гет запросом. Если не помогло получить тайтл, то идёт алерт в ТГ. Затем, исходя из того, что смогло получить данные с сайта, выбирается постоянный тип проверки для ссылки (для минимизации затрат) и им проверяется, примерно раз в час.
Проблемы:
- Проверка идёт около 1-1,5 часа (1300 ссылок 4 потока)
- Если появляется новый сайт, под какую-либо экзотическую страну, и этих прокси у нас нет, то сайт отсекает запрос и ссылка идёт на алерт, хотя может и работать
- Некоторые сайты блокируют как ботов
- Прокси не всегда стабильны
- Смена тайтлов у сайтов отправляет их на алерт и приходится вручную менять
- Некоторые сайты не парсит. Иногда, если сайт на JS фреймворке, то фантому и гет запросу отдаётся шаблон пустой. Селениум не всегда дожидается загрузки всех элементов
- Не на всех сайтах есть тайтлы
Пока что, думаю оставить проверку точно такой же, но перевести не на тайтлы, а на схожесь содержимого body, между эталонным (тот что получили при первой проверке) и тем что нам отдался. Если различия небольшие, то апдейтить эталонный боди.
Хотел бы узнать ваше мнение, может у вас есть какие-либо идеи или кейсы? Нужно какое-то простое и эффективное решение...
Проверять коды ответа - не варик. Иногда при ошибке отдаётся 200, к тому же, редиректов бывает много.