1. 소스코드 (일부)
서울데이터 - s_data
그 밖 데이터 - etc_date
etc_data는 2차원 배열로 etc_data[0] - 충북세종, etc_data[1] - 충남세종대전 .. 으로 구성함
수집한 데이터는 jinja2 템플릿을 활용하여 html에 전달 (소스코드 118, 122)
* API 데이터는 XML형태로만 제공됨
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
app = Flask(__name__, static_url_path='')
req_url = 'http://openapi.work.go.kr/opi/opi/opia/wantedApi.do'
s_parameters = {
'authKey':'API KEY 입력',
'callTp':'L',
'returnType':'XML',
'startPage':1,
'display':100,
'career':'N',
'education':'04',
'region':'11000'
}
s_req = requests.get(req_url, params=s_parameters)
s_f_req = requests.get(req_url, params=s_f_parameters)
s_content = s_req.text
s_f_content = s_f_req.text
s_root = ET.fromstring(s_content)
s_f_root = ET.fromstring(s_f_content)
s_wanted = s_root.findall('.//wanted')
s_f_wanted = s_f_root.findall('.//wanted')
s_data = []
for s_want in s_wanted:
company = s_want.find('company').text
if company[0:5].count('(') and len(company) > 9:
company = company[0:8]+ ".."
elif company[0:8].count(' ') and len(company) > 9:
company = company[0:8]+ ".."
elif len(company) > 8:
company = company[0:7]+ ".."
title = s_want.find('title').text
if len(title) > 12:
title = title[0:11]+ ".."
career = s_want.find('career').text + ' / ' + '대졸(2~3년)'
closeDt = s_want.find('closeDt').text
s_data.append([company+datetime.datetime.now().strftime("%H:%M:%S"), title, career, closeDt])
# '충북세종','충남세종대전','경기','인천','경남부산울산','경북대구','전남광주','전북','강원','제주'
etc=['43000||36110','44000||36110||30000','41000','28000','48000||26000||31000','47000||27000','46000||29000','45000','42000','50000']
#배열선언-2년제
etc_parameters = [0 for i in range(10)]
etc_req = [0 for i in range(10)]
etc_content = [0 for i in range(10)]
etc_root = [0 for i in range(10)]
etc_wanted = [0 for i in range(10)]
etc_data=[[] for _ in range(10)]
stack_data = []
for i in range(10):
etc_parameters[i] = {
'authKey':'API KEY 입력',
'callTp':'L',
'returnType':'XML',
'startPage':1,
'display':100,
'career':'N',
'education':'04',
'region': etc[i]
}
etc_req[i] = requests.get(req_url, params=etc_parameters[i])
etc_f_req[i] = requests.get(req_url, params=etc_f_parameters[i])
etc_content[i] = etc_req[i].text
etc_f_content[i] = etc_f_req[i].text
etc_root[i] = ET.fromstring(etc_content[i])
etc_f_root[i] = ET.fromstring(etc_f_content[i])
etc_wanted[i] = etc_root[i].findall('.//wanted')
etc_f_wanted[i] = etc_f_root[i].findall('.//wanted')
#지역별 크롤링 -2년제
for etc_want in etc_wanted[i]:
company = etc_want.find('company').text
if company[0:5].count('(') and len(company) > 9:
company = company[0:8]+ ".."
elif company[0:8].count(' ') and len(company) > 9:
company = company[0:8]+ ".."
elif len(company) > 8:
company = company[0:7]+ ".."
title = etc_want.find('title').text
if len(title) > 12:
title = title[0:11]+ ".."
career = etc_want.find('career').text + ' / ' + '대졸(2~3년)'
closeDt = etc_want.find('closeDt').text
stack_data.append([company, title, career, closeDt])
etc_data[i] = stack_data
stack_data = []
############################################
# s_data = 서울 (2-3), s_f_data = 서울(4)
#'충북세종' CB
#'충남세종대전' CN
#'경기' GG
#'인천' INC
#'경남부산울산' GN
#'경북대구' GB
#'전남광주' JN
#'전북' JB
#'강원' GW
#'제주' JJ
###########################################
@app.route('/CB')
def indexCB():
return render_template('index.html',s_data=s_data, len_s=len(s_data), etc_data=etc_data[0], len_etc=len(etc_data[0]), local_code=43000)
@app.route('/CN')
def indexCN():
return render_template('index.html',s_data=s_data, len_s=len(s_data), etc_data=etc_data[1], len_etc=len(etc_data[1]), local_code=44000)
|
cs |
'웹 > Flask' 카테고리의 다른 글
[Flask] API를 연동한 Flask 웹서비스 - AWS (0) | 2021.05.04 |
---|---|
[Flask] API를 연동한 Flask 웹서비스 - crontab (0) | 2021.04.29 |
[Flask] API를 연동한 Flask 웹서비스 - html (0) | 2021.04.29 |
[Flask] API를 연동한 Flask 웹서비스 - 구조 (0) | 2021.04.29 |
[Flask] 선형회귀를 활용한 양파가격 예측 (2) | 2021.01.08 |