R50 e37c7a1615588f1969042d2fe3928bd8
Fullstack разработчик

HEADHUNTER. ПАРСЕР ВАКАНСИЙ

Добавлено 26 мая 2021 в 19:21
Как то я подумал, что утомительно щелкать по страницам HH в поиске вакансий. В принципе меня интересовала конкретная небольшая информация, чтобы проявить интерес к позиции.

Плюсом к тому пришла мысль, что было занимательно посмотреть статистику по разным языкам, платформам, фреймворкам. Это было дало общую температуру на рынке. Да отталкиваясь от это статистике можно было бы расставлять приоритеты в сторону изучений тех или иных технологий.

Так как я уже делал небольшие парсеры мне было интересно реализовать данную задачу.
В будущем это начинание стало базой для многих проектов, которые делаю на данный момент.


Сначала я сделал простой парсер. Использовал Node.js и Axois для получения контента и страниц. Получаемую информацию я сортировал по категориям языков и технологий, и параллельно вел скорринг этих категорий, чтобы видеть частоту.
В итоге получилась такая простенькая табличка.
В ней я быстро извлекал привлекающие меня вакансии и открывал ссылки для просмотра.



Все было отлично, пока через некоторое время спустя я обнаружил, что HH поставили защиту от прямого парсинга.
Тогда я начал думать как обойти этот момент. И тогда я познакомился с движком Puppeteer.js. Этот движек изначально задумывался для тестирования интерфейсов имитируя поведение браузера. Это то, что было мне и нужно. Благодаря нему, я не парсил информацию в классическом виде, а использовал метод скраппинга, то есть с помощью браузера имитируя поведение обычного пользователя, я брал нужную мне информацию.

Так мне удалось обойти защиту HeadHunter :).


9cf0c5cb60 24d0ea68a6 8e16cbe186