본문 바로가기
공부/파이썬 Python

Skills Engine API 이용해서 모든 직업 불러오기 (feat. requests, json)

by 혼밥맨 2021. 1. 14.
반응형

Skills Engine API 이용해서 모든 직업 불러오기 (feat. requests, json)

스킬스엔진은 각 개인이 가진 역량을 최대화하여 진로 (career path) 설정하는 데에 도움을 주는 텍사스, 미국에 위치한 기업이다.

스킬스엔진 역시 API를 제공하는데 무료 버전은 한 달에 250번의 API 요청을 할 수 있다.

Settings & Keys

Settings & Keys에 들어가서 client_id, client_secret을 얻을 수 있다.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Skills Engine Web Address 
# https://skillsengine.com/
 
# Skills Engine API 계정 관리 사이트
# https://accounts.skillsengine.com/settings
 
# Skills Engine 개발자 허브
# https://dev.skillsengine.com/reference
 
# import libraries
import requests
import json
import pandas as pd
import time
from openpyxl import Workbook
 
# You can retrieve your API Key at Setting & Keys
client_id       = "YOUR CLIENT ID"
client_secret   = "YOUR CLIENT SECRET"
 
# Access a token
host = "https://api.skillsengine.com"
headers = {'Content-Type':'application/json'}
payload = {
    'grant_type':'client_credentials',
    'client_id':client_id,
    'client_secret':client_secret
}
= requests.post(host+'/api/token', headers=headers, data=json.dumps(payload))
res_json = r.json()
# ACCESS_TOKEN
access_token = res_json['access_token']
 
 
# Get all occupations
headers = {
    'Content-Type':'application/json',
    'Authorization':'Bearer: '+access_token
}
url = "https://api.skillsengine.com/v2/occupations"
response = requests.request("GET", url, headers=headers)
response = response.json()
response = str(response_json.values())
response = response.split("'},"# Dividing by each occupation
 
ABC = ["A1""B1""C1""D1""E1""F1""G1""H1""I1""J1""K1""L1"]
columns = ["id""guid""soc""title""short_title""description""education_range""version""status""lay_titles""family""family_title"]
 
write_wb = Workbook()
write_ws = write_wb.active
 
# Head Column 만들기
for (alphabet, col) in zip(ABC, columns): 
  write_ws[alphabet] = col
 
for res in response:                
  id = res[res.find("'id':")+7:res.find("'guid'")-3]
  guid = res[res.find("'guid':")+9:res.find("'soc'")-3]
  soc = res[res.find("'soc':")+8:res.find("'title'")-3]
  title = res[res.find("'title':")+10:res.find("'short_title'")-3]
  short_title = res[res.find("'short_title':")+16:res.find("'description'")-3]
  description = res[res.find("'description':")+16:res.find("'education_range'")-3]
  education_range = res[res.find("'education_range':")+18:res.find("'version'")-2]
  version = res[res.find("'version':")+10:res.find("'status'")-2]
  status = res[res.find("'status':")+9:res.find("'lay_titles'")-2]
  lay_titles = res[res.find("'lay_titles':")+13:res.find("'family'")-2]
  family = res[res.find("'family':")+10:res.find("'family_title'")-2]
  family_title = res[res.find("'family_title':")+17:]
  write_ws.append([id, guid, soc, title, short_title, description, education_range, version, status, lay_titles, family, family_title])
 
 
 
write_wb.save("Skills_Engine_ALLOccupations.csv")
cs

Skills_Engine_ALLOccupations.csv

반응형

댓글