All Projects → hukenovs → hh_research

hukenovs / hh_research

Licence: GPL-3.0 license
Автоматизация поиска и исследования вакансий с сайта hh.ru (Headhunter) с помощью методов Python. Классификация данных, поиск статистических параметров.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to hh research

Algorithmic-Trading
Algorithmic trading using machine learning.
Stars: ✭ 102 (+183.33%)
Mutual labels:  data-mining, pandas, matplotlib
Ai Learn
人工智能学习路线图,整理近200个实战案例与项目,免费提供配套教材,零基础入门,就业实战!包括:Python,数学,机器学习,数据分析,深度学习,计算机视觉,自然语言处理,PyTorch tensorflow machine-learning,deep-learning data-analysis data-mining mathematics data-science artificial-intelligence python tensorflow tensorflow2 caffe keras pytorch algorithm numpy pandas matplotlib seaborn nlp cv等热门领域
Stars: ✭ 4,387 (+12086.11%)
Mutual labels:  data-mining, pandas, matplotlib
fer
Facial Expression Recognition
Stars: ✭ 32 (-11.11%)
Mutual labels:  pandas, matplotlib
PracticalMachineLearning
A collection of ML related stuff including notebooks, codes and a curated list of various useful resources such as books and softwares. Almost everything mentioned here is free (as speech not free food) or open-source.
Stars: ✭ 60 (+66.67%)
Mutual labels:  data-mining, pandas
anesthetic
Nested Sampling post-processing and plotting
Stars: ✭ 34 (-5.56%)
Mutual labels:  pandas, matplotlib
Jupyter Tips And Tricks
Using Project Jupyter for data science.
Stars: ✭ 245 (+580.56%)
Mutual labels:  pandas, matplotlib
Artificial Intelligence Deep Learning Machine Learning Tutorials
A comprehensive list of Deep Learning / Artificial Intelligence and Machine Learning tutorials - rapidly expanding into areas of AI/Deep Learning / Machine Vision / NLP and industry specific areas such as Climate / Energy, Automotives, Retail, Pharma, Medicine, Healthcare, Policy, Ethics and more.
Stars: ✭ 2,966 (+8138.89%)
Mutual labels:  pandas, matplotlib
Instagram-Comments-Scraper
Instagram comment scraper using python and selenium. Save the comments into excel.
Stars: ✭ 73 (+102.78%)
Mutual labels:  data-mining, pandas
Windrose
A Python Matplotlib, Numpy library to manage wind data, draw windrose (also known as a polar rose plot), draw probability density function and fit Weibull distribution
Stars: ✭ 208 (+477.78%)
Mutual labels:  pandas, matplotlib
Msnoise
A Python Package for Monitoring Seismic Velocity Changes using Ambient Seismic Noise | http://www.msnoise.org
Stars: ✭ 94 (+161.11%)
Mutual labels:  data-mining, research
Rightmove webscraper.py
Python class to scrape data from rightmove.co.uk and return listings in a pandas DataFrame object
Stars: ✭ 125 (+247.22%)
Mutual labels:  data-mining, pandas
Kagglestruggle
Kaggle Struggle
Stars: ✭ 228 (+533.33%)
Mutual labels:  pandas, matplotlib
Edaviz
edaviz - Python library for Exploratory Data Analysis and Visualization in Jupyter Notebook or Jupyter Lab
Stars: ✭ 220 (+511.11%)
Mutual labels:  pandas, matplotlib
Learnpythonforresearch
This repository provides everything you need to get started with Python for (social science) research.
Stars: ✭ 163 (+352.78%)
Mutual labels:  research, pandas
Python Wechat Itchat
微信机器人,基于Python itchat接口功能实例展示:01-itchat获取微信好友或者微信群分享文章、02-itchat获取微信公众号文章、03-itchat监听微信公众号发送的文章、04 itchat监听微信群或好友撤回的消息、05 itchat获得微信好友信息以及表图对比、06 python打印出微信被删除好友、07 itchat自动回复好友、08 itchat微信好友个性签名词云图、09 itchat微信好友性别比例、10 微信群或微信好友撤回消息拦截、11 itchat微信群或好友之间转发消息
Stars: ✭ 216 (+500%)
Mutual labels:  pandas, matplotlib
Data Mining Conferences
Ranking, acceptance rate, deadline, and publication tips
Stars: ✭ 236 (+555.56%)
Mutual labels:  data-mining, research
Data Science Types
Mypy stubs, i.e., type information, for numpy, pandas and matplotlib
Stars: ✭ 180 (+400%)
Mutual labels:  pandas, matplotlib
Dexplot
Simple plotting library that wraps Matplotlib and integrated with DataFrames
Stars: ✭ 208 (+477.78%)
Mutual labels:  pandas, matplotlib
Biolitmap
Code for the paper "BIOLITMAP: a web-based geolocated and temporal visualization of the evolution of bioinformatics publications" in Oxford Bioinformatics.
Stars: ✭ 18 (-50%)
Mutual labels:  data-mining, research
Deepgraph
Analyze Data with Pandas-based Networks. Documentation:
Stars: ✭ 232 (+544.44%)
Mutual labels:  data-mining, pandas

Автоматизация поиска и анализа вакансий hh.ru

Идея: проект упрощает поиск, анализ и исследование особенностей вакансий на hh.ru. Скрипт использует API hh.ru для доступа к данным вакансий.

Общая информация

Title HeadHunter Find & Research
Author Alexander Kapitanov
Language Python (3+)
Contact hidden
Release 14 Aug 2019
License GNU GPL 3.0

Example Data Frame


Requirements

Перечень всех зависимостей в requirements.txt

matplotlib==3.2.1
nltk==3.4.5
numpy==1.18.2
pandas==1.0.3
pre-commit==2.8.2
requests==2.23.0
seaborn==0.10.0
tqdm==4.45.0

Command line arguments

usage: parser.py [-h] [--text TEXT] [--max_workers MAX_WORKERS] [--refresh] [--save_result] [--update]

HeadHunter (hh.ru) vacancies researcher

optional arguments:
  -h, --help            show this help message and exit
  --text TEXT           Search query text (e.g. "Machine learning")
  --max_workers MAX_WORKERS
                        Number of workers for multithreading.
  --refresh             Refresh cached data from HH API
  --save_result         Save parsed result as DataFrame to CSV file.
  --update              Save command line args to file in JSON format.

Config file

Все параметры находятся в конфигурационном файле:

{
  "options": {
    "text": "Data Scientist",
    "area": 1,
    "per_page": 50
  },
  "refresh": false,
  "max_workers": 7,
  "save_result": false,
  "exchanges": ["RUB", "USD", "EUR", "UAH"]
}

Input data

Входные данные - словарь ключевых значений, формирующих запрос.

Основные параметры:

  • area - локация поискового запроса (пример: {area: 1} - Москва),
  • text - поисковой запрос для вакансий (пример: {text : Machine Learning} или {text: Java}),
  • per_page - количество вакансий на страницу, по умолчанию 50. и другие параметры (в зависимости от требуемого запроса).

Пример графика распределения зарплат:

Example Salary Distribution

Run

Для запуска скрипта необходимо задать обязательный параметр ключевого запроса поиска. В системах Windows ключевой запрос в двойных кавычках! Например: Machine Learning или JavaScript. Скрипт запускается из командной строки:

python researcher.py --text "Python Developer"

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

python researcher.py --text "Data Mining" --refresh

Processing

  • Ответ от удаленного ресурса в виде json-массива для текущего курса валют: {RUR, USD, EUR, UAH}.
  • На базе словаря входных данных формируется URL для запроса данных с hh.ru через API,
  • Создается список всех id вакансий,
  • Парсинг JSON в ответ на запрос по всем id вакансий,
    • Анализ параметра salary для формирования словаря зарплат:
      • Для зарплат, указанных в USD и EUR производится пересчёт по текущему курсу рубля,
      • Для зарплат, указанных до вычета НДФЛ производится пересчёт на реальную зарплату "на руки",
      • Для отсутствующих зарплат - пропуск.
    • Создаётся словарь ключевых элементов таблицы,
      • Массив содержит поля: {колонки фрейма* - (см. ниже)},
      • Для полей From и To происходит перерасчет зарплаты,
      • Ключевые навыки формируются как перечисляемый список,
      • Описание вакансий очищается от HTML-тегов с помощью дополнительной функции.
    • Функция возвращает массив кортежей.
  • Преобразование сырых данных в DataFrame для дальнейшего анализа. Результат сохраняется на диск в виде csv файла.
  • Анализ DataFrame - поиск статстических параметров, поиск мат. ожидания, медианы и т.д от зарплат. Классификация по параметрам.
  • Предсказание зарплат для вакансий, у которых этот параметр не задан.
  • Построение информативных графиков.

Пример графика для указанных зарплат:

Example Salary Plot

Колонки фрейма:

Параметр Тип Описание
Ids str идентификатор вакансии (формирует ссылку на вакансию)
Employer str работодатель
Name str название вакансии
Salary bool указание зарплаты: True / False
From float нижний порог зарплаты
To float верхний порог зарплаты
Experience str опыт работы
Schedule str график работы
Keys list ключевые навыки
Description str описание вакансиии

Нижний и верхний порог зарплаты пересчитаны в рубли по текущему курсу валюты. Также для зарплат, указанных до вычета НДФЛ производится пересчёт на реальную зарплату "на руки".

Пример наиболее часто используемых ключевых значений:

Top words in Key / Description

Output data

Выходные данные - таблица в формате csv, созданная с помощью фреймворка pandas. Дополнительно к этой таблице проводится анализ: поиск мат. ожидания, медианы и т.д от зарплат в зависимости от остальных критериев в таблице (например, от опыта работы). Проводится классификация по различным параметрам.

Пример предсказанных зарплат:

Salaries predicted

Документация API HeadHunter hh.ru


Link:

Author:

  • Kapitanov Alexander

Release:

  • 2019/08/14.

License:

  • GNU GPL 3.0.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].