Skip to content

Laqwalasse/hhAutoJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hhAuto

Скрипт в формате автотеста, который автоматически откликается на вакансии по заданным параметрам.

Гифка "зависает" на этапе пагинации, нужно подождать ~15 сек (сейчас этой проблемы уже нет, но перезаписывать лень). На релевантность вакансий не смотрим, тут просто показ, как работает скрипт.

JobuxAuto

Как использовать

  1. Скачиваем этот репозиторий
  2. Жмём комбинацию win + R
  3. В открывшемся окне пишем cmd
  4. Переходим в директорию, куда скачали репозиторий через команду cd. Например: cd C:\Users\User\Downloads
  5. Пишем npm start
  6. В открывшемся интерфейсе заполняем свои параметры, аналогично примерам. То же самое можно сделать вручную, открыв файл "settings.txt" в папке репозитория. Login и Password сейчас заполнять не нужно, они под виртуалку node.js, которая сейчас не готова.
Логин от hh
login=login

Пароль от hh
password=password

Место расположения файла запуска Google Chrome. 
userDataDir=C:/Users/User/AppData/Local/Google/Chrome/User Data

Место расположения профилей хрома.
executablePath=C:/Program Files/Google/Chrome/Application/chrome.exe

Место, куда сохранять эксель файл с данными о вакансиях, которые пропустили и на которые откликнулись.
outputPath=C:/Users/User/JobuxAuto/historian

Названия должностей, на которые хотим откликаться.
jobTitles=Fullstack-аналитик, Fullstack аналитик, Фулстек-аналитик, Фулстек аналитик, Бизнес-аналитик, Бизнес аналитик, Business Analyst, Аналитик бизнес-процессов, Системный аналитик, System Analyst

Слова-исключения, присутствие которых в описании вакансии автоматически игнорится скриптом.
exclusionWords=Аккаунт, Account, Помощник, Ассистент, Стажёр, Стажер, Стажировка, 1С, 1C, Bitrix, Bitrix24, Битрикс, Битрикс24, CRM, C1, C2, С1, С2

Сфера деятельности компании.
fieldSelectors=7

Страна поиска.
countrySelectors=113, 5, 40, 9, 16, 28, 1001, 48, 97

Максимальное количество страниц для извлечения вакансий.
pageNum=40

Максимальное количество вакансий, на которое хотим откликнуться.
appliedCount=200

Приоритет вакансий по требуемому опыту работы.
experienceOrder='Опыт 1-3 года':1,'Опыт 3-6 лет':2,'Без опыта':3,'Опыт более 6 лет':4

Название резюме, которым хотим откликнуться.
resumeText=Fullstack-аналитик

Headless функция (false - с интерфейсом ; true - без интерфейса, через консоль).
headless=false

Выбор режима запуска через локальный профиль браузера или через виртуальную машину Node.
executionMode=local

Сейчас там все параметры стоят на поиск по всему миру и в сфере айти. Чтобы поменять надо открывать хедхантер, перейти в расширенный поиск и открыть нужный раздел. Затем по конкретному пункту кликнуть правой кнопкой мыши и выбрать "Inspect". Откроется devtools и в нём нужно найти цифру этого элемента. На примере изображения это будет "47" для нефтегаза.

image 8. Жмём кнопку "Запустить"

Текущее состояние

Реализация через автотест очень плохая сама по себе. hh выпуская обновления ломает скрипту обе ноги.

Я с этим мирился, потому что очень не хотел завязываться на их API и токене, так как потенциально они могут перестать мне их предоставлять и я в итоге всё равно вернусь к автотесту.

В итоге я решил, что максимально оформлю этот репозиторий (добавлю how-to, оформлю и раскидаю таски в гитхаб раздел "Issues", полное описание), сделаю MVP, а потом заморожу и начну делать ту же задумку, но через полноценное API.

Примечание

  • node.js должен быть скачан и установлен. Ссылка: https://nodejs.org/en
  • ChromeDriver должен быть скачан и установлен. Ссылка: https://googlechromelabs.github.io/chrome-for-testing/
  • Браузер по умолчанию: Google Chrome (в других браузерах селекторы могут работать некорректно). Ссылка: https://www.google.com/intl/ru_ru/chrome/
  • ОС: тестировал на Windows 10. За остальные сказать не могу.
  • Сломанные вакансии: иногда встречаются отдельные вакансии, на которых программа встаёт в ступор и может прерывать работу. Причем это бывает неоднократно и внезапно после нескольких запусков он может всё-таки откликнуться на эту вакансию. Причина неизвестна. Вариант решения: с отключенным режимом headless вручную откликнуться на эту вакансию и запустить программу по новой.
  • Поломка браузера: на самых ранних версиях программы один единственный раз столкнулся с тем, что произошла рассинхронизация браузера Google Chrome с профилем гугла и простым релогом это не решалось, багнулось намертво, пришлось переустановить его два или три раза... Для тех, у кого включена синхронизация с профилем это не должно стать проблемой, так как после установки всё вернётся. А вот если вы держите настройки локально - найдите их и сделайте бэкап перед установкой.