Guten Tag.
Vor ein paar Jahren habe ich zur Unterstützung des Headhuntern (hh.ru) einen Vorschlag unterbreitet, zusätzlich zu den drei verfügbaren (in der Berufsbezeichnung, im Firmennamen, in der Stellenbeschreibung) eine zusätzliche Suchoption für Schlüsselqualifikationen zu erstellen. Mir wurde gesagt, dass es mehr Vorschläge zur Verbesserung des Service gibt als Dunkelheit, also Dosvidos. Das Ergebnis ist diese Forschung ...
Ich habe von api.hh.ru erfahren und beschlossen, einen Parser in Excel zu erstellen, damit das Ergebnis visuell leichter zu analysieren ist. Das API- Dock unter github.com/hhru/api ist in Ordnung, sodass Sie arbeiten können. Zunächst habe ich mich entschlossen, die Key Skills Reference (key_skills) zu analysieren. Während er sich streckte, stellte sich heraus, dass die ersten tausendeinhalb der Standard sind, der standardmäßig eingeführt wurde. Und der Rest der Verwirrung und des Wackelns blieb ich bei 13.000 stehen und ließ die Ladung fallen. Es ist klar, wir müssen zum Parser gehen.
Ich habe die ersten Schlussfolgerungen aus den Daten wie folgt gezogen:
Ich habe nicht darüber nachgedacht, wie ich sie verwenden soll. Daher habe ich beschlossen, es wie in einem RDBMS zu machen und dann eine Pivot-Tabelle zum Filtern zu erstellen. Und jetzt lautet die Schlussfolgerung:
Legen Sie den Code sofort und in der richtigen Reihenfolge an.
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
url0 = "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", url0
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_ = url0 & "&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
Die GET-Anforderung wird in kyrillischer Sprache und in der Activex-Komponente WinHttp.WinHttpRequest in der Option Option (2) - der utf-8-Codepage (65001) - akzeptiert. Daher habe ich einige Zeit mit "Warum sind keine russischen Buchstaben in der Anforderung enthalten?" - durch 0 ersetzt. Es wurde
ein Link zur freien Stelle in der Ausgabe hinzugefügt - es scheint eindeutig zu sein.
Machte einen Pivot-Tisch.
Und wie Sie verstehen, belief sich ein einzigartiger Satz von Fähigkeiten aus tausend offenen Stellen auf 1500, d. H. die gleiche Verwirrung und Schwankung, so dass sich das Hauptziel, "freie Stellen so nah wie möglich an den in meinem Lebenslauf angegebenen Fähigkeiten zu finden" , von mir entfernt zu haben.
Ich habe mich entschlossen, meine Favoriten so zu zählen und auszuwählen:
Spoiler Header
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
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
Im Allgemeinen werde ich der Ausgabe ein Gehalt hinzufügen und vielleicht noch etwas anderes, aber die Fortsetzung der Automatisierung ist ins Stocken geraten. Verwenden Sie dann die Ziehpunkte Strg + C, suchen.
Wenn es Ideen und Vorschläge gibt, lassen Sie uns diskutieren und fortfahren.
Anmerkung 1. Ich kann eine Fremdsprache nicht schnell auf ein mittleres Niveau beherrschen, und die maximale Anzahl von Stellenangeboten, die von der API vergeben werden, beträgt standardmäßig 2 Tausend, 20 pro Seite. Die Anfrage im Code hat dies also gemacht.
Der JSON-Konverter hat von hier aus github.com/VBA-tools/VBA-JSON übernommen .
Damit der JSON-Konverter funktioniert:
Öffnen Sie Excel und aktivieren Sie die Anzeige der Registerkarte Entwickler. Wechseln
Sie zum Visual Basic-Editor (in der Multifunktionsleiste Entwickler> Visual Basic).
Öffnen Sie die Referenzliste: im Menü Extras> Referenzen ...
Überprüfen Sie die Microsoft Scripting Runtime- und Microsoft VBScript Regular Expressions 5.5. OK klicken.
Alle. Die Welt verändert sich - ich passe mich an. Und du wirst nicht krank.
PS:
Im Allgemeinen ist der Artikel weniger technisch als vielmehr über Aspekte der Jobsuche. Ich würde gerne Kommentare dazu sehen, wie Portale wie hh die Verwendung einiger Punkte verbessern können.
Hier sind zum Beispiel die Schlüsselqualifikationen, die im Artikel besprochen werden.
Wenn in offenen Stellen / Lebensläufen das Kompetenzniveau (Anfänger, Mittelstufe, Senior) für jede Fähigkeit angegeben wird, würde dies dazu beitragen, die Anzeige der Relevanz in den Suchergebnissen zu verbessern.