[Карьера в IT-индустрии, Программирование] Первый опыт использования API.hh.ru
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Версия 1.02//Да, на Хабре не хватает версионности статей. Комментарии помогают вносить улучшения в статью.
Добрый день.
Пару лет назад в support хедхантера(hh.ru) закинул предложение сделать дополнительную опцию поиска по ключевым навыкам помимо имеющихся трех(в названии вакансии, в названии компании, в описании вакансии). Мне ответили, что предложений по улучшению сервиса больше чем тьма, так что досвидос. Результат это исследование…
Узнал про api.hh.ru и решил начать делать парсер в Excel, чтобы результат как-то визуально легче анализировать. Дока по API на github.com/hhru/api нормальная, так что можно работать. В первую очередь я решил проанализировать справочник ключевых навыков(key_skills). Пока он вытягивался выяснилось, что первые тысячи полторы — это стандарт введенные по умолчанию. А остальные разброд и шатание, я остановился на 13000 и бросил загрузку. Понятно, надо переходить к парсеру.
Первый вывод данных я сделал таким:
Как его применить я не придумал. Поэтому решил сделать как в РСУБД и потом сделать сводную таблицу для фильтраци. И теперь вывод такой:
Сразу выложу код и по порядку.
Sub vvv()
Dim http
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
timeout = 2000 'milliseconds
http.setTimeouts timeout, timeout, timeout, timeout
http.Option(2) = 0 'Замена дефолтного значения 65001 для отмены преобразования в utf-8
Dim url_ As String
url_ = "https://api.hh.ru/vacancies?text=NAME:(Программист) and DESCRIPTION:(NOT intermediate)&area=1&only_with_salary=true&no_magic=true&salary=100000¤cy_code=RUR&period=30&label=not_from_agency&order_by=publication_time"
http.Open "get", url_
http.send
text = http.responseText
If InStr(text, "errors") > 0 Then
Debug.Print text
Stop
Else
If text <> "" Then
Set qwe = JsonConverter.ParseJson(text)
End If
End If
CountV = qwe("found")
CountP = qwe("pages")
isk = 1
On Error GoTo AfterSk
For pg = 1 To CountP
If pg > 1 Then
url_ = "https://api.hh.ru/vacancies?text=NAME:(Программист) and DESCRIPTION:(NOT intermediate)&area=1&only_with_salary=true&no_magic=true&salary=100000¤cy_code=RUR&period=30&label=not_from_agency&order_by=publication_time&page=" & pg
http.Open "get", url_
http.send
text = http.responseText
Set qwe = JsonConverter.ParseJson(text)
End If
For i = 1 To 20
ii = (pg - 1) * 20 + i
Set Item = qwe("items")(i)
url1 = Item("alternate_url")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Bold = True
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Size = 14
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3).Font.Bold = True
url_ = Item("url")
url_ = Replace(url_, "?host=hh.ru", "")
http.Open "get", url_
http.send
text = http.responseText
Set vak = JsonConverter.ParseJson(text)
Set keySkills = vak("key_skills")
CountSk = keySkills.Count
If CountSk > 0 Then
For jj = 1 To CountSk
If jj <> 1 Then isk = isk + 1
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 2) = keySkills(jj)("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 2).Font.Italic = True
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1
Next jj
' Else
' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1) = vak("description")
' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1).Select
' Rows("2 + (ii - 1) * 3:2 + (ii - 1) * 3").EntireRow.AutoFit
End If
AfterSk:
If Err.Number <> 0 Then
'Stop
Resume Next
Err.Clear
End If
DoEvents
Next i
Next pg
Stop
End Sub
GET-запрос принимается в кириллице, а в Activex-контроле WinHttp.WinHttpRequest в свойстве Option(2) — кодовая страница utf-8(65001), поэтому потратил какое-то время на «почему русские буквы в запросе не находятся?» — заменил на 0.
Добавил в вывод ссылку на вакансию — она как бы уникальна.
Сделал сводную таблицу.
И как вы понимаете уникальный набор навыков из тысячи вакансий составил 1500, т.е. тот самый разброд и шатание, так что главная цель «подобрать вакансии максимально приближенные к навыкам, указанным у меня в резюме», вроде удалилась от меня.
Решил посчитать и выбрать любимые как-то так:
Заголовок спойлера
SPL
skill;count
Git;546
JavaScript;458
SQL;283
MySQL;255
PostgreSQL;251
ООП;197
Java;196
HTML;186
Linux;177
Python;164
C#;139
HTML5;131
MS SQL;120
REST;82
XML;61
.NET Framework;56
MVC;55
ASP.NET;51
MS SQL Server;49
.NET Core;24
Entity Framework;21
HTTP;20
MS Visual Studio;20
Rest API;18
TCP/IP;15
Cистемы управления базами данных;13
LINQ;12
SQLite;12
WCF;11
В общем добавлю в вывод зп и может что еще но продолжение автоматизации застопорилось. Дальше ручками Ctrl+C, поиск.
Если есть идеи и предложения, давайте обсудим и продолжим.
Прим.1. Освоить иностранный до уровня intermediate быстро не смогу и максимум вакансий, выдаваемых API = 2 тысячи по умолчанию по 20 на странице, поэтому запрос в коде сделал такой.
Конвертер json взял здесь github.com/VBA-tools/VBA-JSON.
Всё. Мир меняется — Адаптируюсь. И вам не болеть.
PS:
В общем-то статья не столько техническая, сколько об аспектах поиска работы. Хотелось бы увидеть комментарии о том как порталам типа hh улучшить использование некоторых моментов.
Вот, например, затронутые в статье ключевые навыки.
Если в вакансиях/резюме указывать для каждого навыка уровень владения(Начинающий, Средний, Сеньор) — это помогло бы увеличить вывод по релевантности в результатах поиска.
===========
Источник:
habr.com
===========
Похожие новости:
- [Управление разработкой, Интервью, Карьера в IT-индустрии, Управление персоналом, Управление проектами] Процессы разработки, или сколько стоит сделать сайт
- [Программирование, Git, Системы управления версиями, DevOps, Микросервисы] Монорепозитории NX и Lerna, или Туда и обратно
- [JavaScript, Программирование, Разработка веб-сайтов] Основные команды bash, git, npm и yarn, а также немного о package.json и semver
- [Биографии гиков, Интервью, Карьера в IT-индустрии, Учебный процесс в IT] Первый Pentium, Turbo Pascal и олимпиадная физика: разработчики вспоминают, как учились в школе
- [Компиляторы, Программирование] Using Flex (Fast Lexical Analyzer Generator)
- [Локализация продуктов, Венчурные инвестиции, Развитие стартапа, Законодательство в IT, Карьера в IT-индустрии] Как открыть компанию в UK, привлечь инвестиции и получить кэшбэк от государства?
- [Программирование, Учебный процесс в IT, Карьера в IT-индустрии, Конференции] Бесплатные онлайн-мероприятия по разработке (7 октября — 15 октября)
- [Open source, Управление сообществом, Исследования и прогнозы в IT, Карьера в IT-индустрии, Биографии гиков] Цифровой гуманизм Питера Хинченса
- [Управление разработкой, Карьера в IT-индустрии] Взгляд с позиции работодателя на fullstack и специализацию
- [Программирование микроконтроллеров] Передача аналогового тв сигнала с помощью STM32
Теги для поиска: #_karera_v_itindustrii (Карьера в IT-индустрии), #_programmirovanie (Программирование), #_hh.ru, #_vba, #_poisk_vakansij (поиск вакансий), #_karera_v_itindustrii (
Карьера в IT-индустрии
), #_programmirovanie (
Программирование
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:43
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Версия 1.02//Да, на Хабре не хватает версионности статей. Комментарии помогают вносить улучшения в статью. Добрый день. Пару лет назад в support хедхантера(hh.ru) закинул предложение сделать дополнительную опцию поиска по ключевым навыкам помимо имеющихся трех(в названии вакансии, в названии компании, в описании вакансии). Мне ответили, что предложений по улучшению сервиса больше чем тьма, так что досвидос. Результат это исследование… Узнал про api.hh.ru и решил начать делать парсер в Excel, чтобы результат как-то визуально легче анализировать. Дока по API на github.com/hhru/api нормальная, так что можно работать. В первую очередь я решил проанализировать справочник ключевых навыков(key_skills). Пока он вытягивался выяснилось, что первые тысячи полторы — это стандарт введенные по умолчанию. А остальные разброд и шатание, я остановился на 13000 и бросил загрузку. Понятно, надо переходить к парсеру. Первый вывод данных я сделал таким: Как его применить я не придумал. Поэтому решил сделать как в РСУБД и потом сделать сводную таблицу для фильтраци. И теперь вывод такой: Сразу выложу код и по порядку. Sub vvv()
Dim http Set http = CreateObject("WinHttp.WinHttpRequest.5.1") timeout = 2000 'milliseconds http.setTimeouts timeout, timeout, timeout, timeout http.Option(2) = 0 'Замена дефолтного значения 65001 для отмены преобразования в utf-8 Dim url_ As String url_ = "https://api.hh.ru/vacancies?text=NAME:(Программист) and DESCRIPTION:(NOT intermediate)&area=1&only_with_salary=true&no_magic=true&salary=100000¤cy_code=RUR&period=30&label=not_from_agency&order_by=publication_time" http.Open "get", url_ http.send text = http.responseText If InStr(text, "errors") > 0 Then Debug.Print text Stop Else If text <> "" Then Set qwe = JsonConverter.ParseJson(text) End If End If CountV = qwe("found") CountP = qwe("pages") isk = 1 On Error GoTo AfterSk For pg = 1 To CountP If pg > 1 Then url_ = "https://api.hh.ru/vacancies?text=NAME:(Программист) and DESCRIPTION:(NOT intermediate)&area=1&only_with_salary=true&no_magic=true&salary=100000¤cy_code=RUR&period=30&label=not_from_agency&order_by=publication_time&page=" & pg http.Open "get", url_ http.send text = http.responseText Set qwe = JsonConverter.ParseJson(text) End If For i = 1 To 20 ii = (pg - 1) * 20 + i Set Item = qwe("items")(i) url1 = Item("alternate_url") ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name") ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1 ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Bold = True ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Size = 14 ThisWorkbook.Worksheets(2).Cells(ii + isk, 3).Font.Bold = True url_ = Item("url") url_ = Replace(url_, "?host=hh.ru", "") http.Open "get", url_ http.send text = http.responseText Set vak = JsonConverter.ParseJson(text) Set keySkills = vak("key_skills") CountSk = keySkills.Count If CountSk > 0 Then For jj = 1 To CountSk If jj <> 1 Then isk = isk + 1 ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name") ThisWorkbook.Worksheets(2).Cells(ii + isk, 2) = keySkills(jj)("name") ThisWorkbook.Worksheets(2).Cells(ii + isk, 2).Font.Italic = True ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1 Next jj ' Else ' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1) = vak("description") ' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1).Select ' Rows("2 + (ii - 1) * 3:2 + (ii - 1) * 3").EntireRow.AutoFit End If AfterSk: If Err.Number <> 0 Then 'Stop Resume Next Err.Clear End If DoEvents Next i Next pg Stop End Sub GET-запрос принимается в кириллице, а в Activex-контроле WinHttp.WinHttpRequest в свойстве Option(2) — кодовая страница utf-8(65001), поэтому потратил какое-то время на «почему русские буквы в запросе не находятся?» — заменил на 0. Добавил в вывод ссылку на вакансию — она как бы уникальна. Сделал сводную таблицу. И как вы понимаете уникальный набор навыков из тысячи вакансий составил 1500, т.е. тот самый разброд и шатание, так что главная цель «подобрать вакансии максимально приближенные к навыкам, указанным у меня в резюме», вроде удалилась от меня. Решил посчитать и выбрать любимые как-то так: Заголовок спойлераSPLskill;count
Git;546 JavaScript;458 SQL;283 MySQL;255 PostgreSQL;251 ООП;197 Java;196 HTML;186 Linux;177 Python;164 C#;139 HTML5;131 MS SQL;120 REST;82 XML;61 .NET Framework;56 MVC;55 ASP.NET;51 MS SQL Server;49 .NET Core;24 Entity Framework;21 HTTP;20 MS Visual Studio;20 Rest API;18 TCP/IP;15 Cистемы управления базами данных;13 LINQ;12 SQLite;12 WCF;11 В общем добавлю в вывод зп и может что еще но продолжение автоматизации застопорилось. Дальше ручками Ctrl+C, поиск. Если есть идеи и предложения, давайте обсудим и продолжим. Прим.1. Освоить иностранный до уровня intermediate быстро не смогу и максимум вакансий, выдаваемых API = 2 тысячи по умолчанию по 20 на странице, поэтому запрос в коде сделал такой. Конвертер json взял здесь github.com/VBA-tools/VBA-JSON. Всё. Мир меняется — Адаптируюсь. И вам не болеть. PS: В общем-то статья не столько техническая, сколько об аспектах поиска работы. Хотелось бы увидеть комментарии о том как порталам типа hh улучшить использование некоторых моментов. Вот, например, затронутые в статье ключевые навыки. Если в вакансиях/резюме указывать для каждого навыка уровень владения(Начинающий, Средний, Сеньор) — это помогло бы увеличить вывод по релевантности в результатах поиска. =========== Источник: habr.com =========== Похожие новости:
Карьера в IT-индустрии ), #_programmirovanie ( Программирование ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:43
Часовой пояс: UTC + 5