Считаем среднюю ЗП маркетолога при помощи API hh.ru и скрипта python
Недавно я начал изучение языка программирования python. Для развития навыка программирования я придумал себе задачу.
Посчитать минимальную среднюю ЗП по запросу интернет маркетолог на сайте hh.ru, по региону Россия. Сейчас по запросу интернет маркетолог на сайте найдено 2490 вакансий.
Если мы попробуем вручную посчитать среднюю ЗП по всем этим вакансиям, то нам нужно будет выписать все зарплаты в эксель для подсчета средней величины. Мне кажется на выписывание 2000 вакансий уйдет не меньше 2 часов. В такие моменты понимаешь, как круто уметь программировать.
Наш скрипт справится с этой задачей за 30 секунд. А если предположить, что вам нужно делать подобные операции ежедневно, то программа поможет сэкономить вам огромное количество времени.
Для решения этой задачи будем использовать api hh, про работу с ним можно почитать в блоге на хабре
Алгоритм решения задачи
- При помощи цикла получаем 200 страниц — результатов выдачи по запросу интернет маркетолог. Всего получаем информацию по 2000 вакансий. Данные получаем в формате json
- Разбиваем данные, получаем множество словарей и ищем в словарях ключ salary в нем хранится информация о зарплате, после ищем значение по ключу from, в нем хранится минимальная ЗП по вакансии
- Суммируем значения всех вакансий по ключу from и подсчитывает при помощи счетчика количество обработанных вакансий
- Делим сумму всех зарплат на количество обработанных вакансий. Получаем среднюю минимальную ЗП.
Ниже я добавил получившийся скрипт с подробными комментариями
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# импортируем библиотеку request для работы с данными в сети import requests x=[] all_zp = 0 all_n = 0 #цикл, который скачивает вакансии for i in range(200): # запрос url = 'https://api.hh.ru/vacancies' #параметры, которые будут добавлены к запросу par = {'text': 'интернет маркетолог', 'area':'113','per_page':'10', 'page':i} r = requests.get(url, params=par) e=r.json() x.append(e) for j in x: y = j['items'] #объявляем переменную n для подсчета, количества итераций цикла перебирающего зарплаты в вакансиях n=0 #объявляем переменную sum_zp для подсчета, суммы зарплат в вакансиях sum_zp=0 #цикл, переберает объекты, т.е перебирает вакансии for i in y: # проверяем есть ли значения в словаре по ключу salary. Т.е проверяем есть ли в вакансии данные по зарплате if i['salary'] !=None: #записываем значение в переменную s s=i['salary'] # проверяем есть ли значения по ключу from. Т.е проверяем есть ли в вакансии данные по минимальной зп if s['from'] !=None: # считаем количество обработанных вакансий в которых указана минимальная ЗП n+=1 #получаем минимальную ЗП по ключу from s['from'] #считаем сумму ЗП по вакансиям sum_zp +=s['from'] #добавляем сумму зп по итерации цикла all_zp +=sum_zp #добавляем сумму n по итерации цикла all_n +=n #считаем среднюю ЗП av_zp=all_zp/all_n print(av_zp) |
В результате выполнения скрипта мы узнаем, что средняя минимальная ЗП по России по запросу интернет маркетолог, на момент его выполнения 44688,44
Еще месяц назад, написать такой скрипт мне казалось чем-то не реальным, т.к. я практически не умел программировать и ничего не знал о python. Если вы работаете с данными, то советую начать учить python, он облегчит вам жизнь.
Теперь я хочу разобраться, как это скрипт закинуть на сервер и заставить работать самостоятельно по расписанию и сохранять результат выполнения в файл на отдельной строке. Об этом я напишу в следующей статье.
Автоматизируйте или автоматизируют вас))