Развернул сервер во внешний мир
Так как страничка для сбора данных у меня готова, то неплохо бы настроить контроллер по маршруту /auth/hh, который будет обрабатывать данные из формы и передавать их в скрипт авторизации.
👩💻 Вот тут то и возникла запара с Nginx. Nginx, как оказалось, представляет из себя такой же веб сервер, как и Express.js, только на стероидах. Он даёт возможность распределять нагрузку на несколько серверов Express.js, работающих на разных портах для масштабирования и отказоустойчивости + ещё 100500 плюшек в придачу. Из конкурентов есть только Apache.
Попотев пару часов, мне удалось настроить https соединение с Cors и связать клиента с сервером. Но после этого меня поджидала следующая проблема в виде капчи, которая выскакивает после нескольких неудачных попыток авторизации.
⚙️ Ранее я детектил ее как отдельную страницу, редирект на которую случался при попытки спарсить данные о вакансии. Сейчас же она рандомно появлялась на страничке, и поиск по элементу капчи тоже не был возможен, так как она находилась в DOM, но была скрыта от глаз.
Как же поступить? Для таких случаев в Puppeteer существует волшебный метод boundingBox(), который возвращает рамку элемента относительно основного фрейма (короче, если элемент скрыт от глаз, то это null).
Но и тут я не остановился, и мне захотелось выводить уведомление о том, что капча обнаружена и мы ее решаем, так как подобная фича занимает около 30 секунд, что может навести на мысль о поломке запроса или кнопки, на которой крутится loading.
Думаю, с такой задачей неплохо справится Socket.io или Server-Sent Events, а продакшен будет завтра.
📊 #статистика День 775 == 1210 час в IT
Post #1062
1.87K

- 👍 7
- 🔥 4
- 🤡 2