From d51b4c239d7ec023023ff51085512fc8ad192de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 9 Nov 2022 15:04:36 +0900 Subject: [PATCH 01/12] Changes --- AIS-CJS/AIS_CJS.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AIS-CJS/AIS_CJS.py b/AIS-CJS/AIS_CJS.py index 36fea5c..c7c9856 100644 --- a/AIS-CJS/AIS_CJS.py +++ b/AIS-CJS/AIS_CJS.py @@ -2,4 +2,7 @@ print("gg") #��ȫ�� �ù߶��Ƥ����� print("ee") -print("실행도잘됨") \ No newline at end of file +print("ss") +print("ss") +print("ss") +print("ss") \ No newline at end of file From a875aa6e7786b9497355a211a2fb34e3bdf72ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 9 Nov 2022 15:13:06 +0900 Subject: [PATCH 02/12] Changes --- .idea/AIS-CJS.iml | 2 +- .idea/misc.xml | 2 +- AIS-CJS/AIS_CJS.py | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.idea/AIS-CJS.iml b/.idea/AIS-CJS.iml index d0876a7..8388dbc 100644 --- a/.idea/AIS-CJS.iml +++ b/.idea/AIS-CJS.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index dc9ea49..d56657a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/AIS-CJS/AIS_CJS.py b/AIS-CJS/AIS_CJS.py index c7c9856..490f664 100644 --- a/AIS-CJS/AIS_CJS.py +++ b/AIS-CJS/AIS_CJS.py @@ -1,6 +1,5 @@ print("asd") print("gg") -#��ȫ�� �ù߶��Ƥ����� print("ee") print("ss") print("ss") From 22bfbbebdeb4e48cd090388db82d4d7291771c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 9 Nov 2022 15:16:11 +0900 Subject: [PATCH 03/12] =?UTF-8?q?=ED=94=84=EB=A1=9C=EA=B7=B8=EB=9E=A8=20?= =?UTF-8?q?=EC=B0=BD=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/jobSearch.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/AIS-CJS/jobSearch.py b/AIS-CJS/jobSearch.py index e5fe8bd..3af3d48 100644 --- a/AIS-CJS/jobSearch.py +++ b/AIS-CJS/jobSearch.py @@ -1,2 +1,21 @@ -print("부끄럽다") -print("시발") \ No newline at end of file +import sys +from PyQt5.QtWidgets import QApplication, QWidget + + +class MyApp(QWidget): + + def __init__(self): + super().__init__() + self.initUI() + + def initUI(self): + self.setWindowTitle('Job Search') + self.move(550, 400) + self.resize(1500, 800) + self.show() + + +if __name__ == '__main__': + app = QApplication(sys.argv) + ex = MyApp() + sys.exit(app.exec_()) \ No newline at end of file From 030fef3c6c481ed88ee883544a933f4eb4494386 Mon Sep 17 00:00:00 2001 From: Juyoung_Laptop Date: Wed, 9 Nov 2022 16:30:20 +0900 Subject: [PATCH 04/12] main window ui update --- .idea/AIS-CJS.iml | 2 +- .idea/misc.xml | 2 +- AIS-CJS/AIS_CJS.py | 23 ++++++++++++++++++----- AIS-CJS/main.ui | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 AIS-CJS/main.ui diff --git a/.idea/AIS-CJS.iml b/.idea/AIS-CJS.iml index d0876a7..8388dbc 100644 --- a/.idea/AIS-CJS.iml +++ b/.idea/AIS-CJS.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index dc9ea49..d56657a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/AIS-CJS/AIS_CJS.py b/AIS-CJS/AIS_CJS.py index 36fea5c..cddaf00 100644 --- a/AIS-CJS/AIS_CJS.py +++ b/AIS-CJS/AIS_CJS.py @@ -1,5 +1,18 @@ -print("asd") -print("gg") -#��ȫ�� �ù߶��Ƥ����� -print("ee") -print("실행도잘됨") \ No newline at end of file +import sys +from PyQt5 import uic +from PyQt5.QtWidgets import QApplication, QMainWindow + +form_class = uic.loadUiType("main.ui")[0] + + +class WindowClass(QMainWindow, form_class): + def __init__(self): + super().__init__() + self.setupUi(self) + + +if __name__ == "__main__": + app = QApplication(sys.argv) + myWindow = WindowClass() + myWindow.show() + app.exec_() \ No newline at end of file diff --git a/AIS-CJS/main.ui b/AIS-CJS/main.ui new file mode 100644 index 0000000..0814370 --- /dev/null +++ b/AIS-CJS/main.ui @@ -0,0 +1,40 @@ + + + MainWindow + + + + 0 + 0 + 900 + 600 + + + + + 900 + 600 + + + + false + + + MainWindow + + + + + + 0 + 0 + 900 + 21 + + + + + + + + From 6051a0f0e9ca4960646b2c7c5414d61aba500c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 16 Nov 2022 18:06:05 +0900 Subject: [PATCH 05/12] =?UTF-8?q?=EC=B1=84=EC=9A=A9=20=EA=B3=B5=EA=B3=A0?= =?UTF-8?q?=20=ED=81=AC=EB=A1=A4=EB=A7=81=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/AIS-CJS.iml | 2 +- AIS-CJS/AIS_CJS.py | 16 ---------- AIS-CJS/jobSearch.py | 69 ++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 68 insertions(+), 19 deletions(-) diff --git a/.idea/AIS-CJS.iml b/.idea/AIS-CJS.iml index 8388dbc..d0876a7 100644 --- a/.idea/AIS-CJS.iml +++ b/.idea/AIS-CJS.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/AIS-CJS/AIS_CJS.py b/AIS-CJS/AIS_CJS.py index cddaf00..139597f 100644 --- a/AIS-CJS/AIS_CJS.py +++ b/AIS-CJS/AIS_CJS.py @@ -1,18 +1,2 @@ -import sys -from PyQt5 import uic -from PyQt5.QtWidgets import QApplication, QMainWindow -form_class = uic.loadUiType("main.ui")[0] - -class WindowClass(QMainWindow, form_class): - def __init__(self): - super().__init__() - self.setupUi(self) - - -if __name__ == "__main__": - app = QApplication(sys.argv) - myWindow = WindowClass() - myWindow.show() - app.exec_() \ No newline at end of file diff --git a/AIS-CJS/jobSearch.py b/AIS-CJS/jobSearch.py index e5fe8bd..3bb7542 100644 --- a/AIS-CJS/jobSearch.py +++ b/AIS-CJS/jobSearch.py @@ -1,2 +1,67 @@ -print("부끄럽다") -print("시발") \ No newline at end of file + +def main(): + import requests + from bs4 import BeautifulSoup + import time + import datetime + + # 잡코리아 + + f = open('jobkorea_apply_urls.csv', 'w') + f.write("기업 이름,모집 제목,경력,학력,우대,고용 형태, 급여, 지역, 모집 기간" + '\n') + + keyword = "프론트엔드" # 키워드 입력 + + # 페이지순서 + for n in range(1, 2): + raw = requests.get( + "https://www.jobkorea.co.kr/Search/?stext={}&tabType=recruit&Page_No=".format(keyword) + str(n) + , headers={'User-Agent': 'Mozilla/5.0'}) + html = BeautifulSoup(raw.text, "html.parser") + results = html.select("li.list-post") + + for ar in results[0:20]: + company_name = ar.select_one("a.name").text.strip() + detail = ar.select_one("a.title").text.strip() + url = 'https://www.jobkorea.co.kr' + ar.find("a")['href'] + exp = ar.select_one("span.exp").text.strip() + location = ar.select_one("span.loc").text.strip() + apply = ar.select_one("div.post-list-apply").text.strip() + company_name = company_name.replace(",", "") + detail = detail.replace(",", "") + location = location.replace(" 외", "") + now = datetime.datetime.now() + #nowDate = now.strftime('%Y-%m-%d') + raw2 = requests.get(url + , headers={'User-Agent': 'Mozilla/5.0'}) + html2 = BeautifulSoup(raw2.text, "html.parser") + #score = str(html2.select("#tab04 > article.artReadStrategy > div > div > div.devStartlist.listArea.specList > div > div.specListWrap > div > ul > li:nth-child(1) > div > span > em"))[5:8] + date_tag1 = html2.select("#tab02 > div.divReadBx.clear.devMakeSameHeight > article.artReadPeriod > div > dl.date > dd:nth-child(2)") + date_tag2 = html2.select("#tab02 > div.divReadBx.clear.devMakeSameHeight > article.artReadPeriod > div > dl.date > dd:nth-child(4)") + prefer = "" + region = "" + pay = "" + date = "" + edu = "" + pattern = "" + for tag in date_tag1: + date += "시작일 " + tag.getText() +" " + for tag in date_tag2: + date += "마감일 " + tag.getText() + f.write( + company_name + ',' + detail + ','+ exp + ','+ edu + ',' + prefer + ',' + pattern + ',' + pay + ',' + region + ',' + date + '\n') + time.sleep(1) # 1초 + + + print(str(n) + "번째 페이지 내 " + str(keyword) + " 의 채용공고 크롤링을 완료했습니다.") + print("최종 엑셀 작업 마무리중 입니다.") + + f.close() + + + + print("잡코리아 크롤링이 완료되었습니다.") + +if __name__ == "__main__": + main() + From efe240537bffbae45f50a233b89f9db87cff8f41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 16 Nov 2022 18:07:49 +0900 Subject: [PATCH 06/12] =?UTF-8?q?=EC=B1=84=EC=9A=A9=20=EA=B3=B5=EA=B3=A0?= =?UTF-8?q?=20=ED=81=AC=EB=A1=A4=EB=A7=81=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/jobSearch.py | 2 +- AIS-CJS/jobkorea_apply_urls.csv | 21 +++++++++++++++++++++ AIS-CJS/zNex~$harejobkorea_apply_urls.csv | Bin 0 -> 668 bytes 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 AIS-CJS/jobkorea_apply_urls.csv create mode 100644 AIS-CJS/zNex~$harejobkorea_apply_urls.csv diff --git a/AIS-CJS/jobSearch.py b/AIS-CJS/jobSearch.py index 3bb7542..07a4145 100644 --- a/AIS-CJS/jobSearch.py +++ b/AIS-CJS/jobSearch.py @@ -60,7 +60,7 @@ def main(): - print("잡코리아 크롤링이 완료되었습니다.") + print("잡코리아 크롤링이 완료되었습니다!!") if __name__ == "__main__": main() diff --git a/AIS-CJS/jobkorea_apply_urls.csv b/AIS-CJS/jobkorea_apply_urls.csv new file mode 100644 index 0000000..b1b0a4f --- /dev/null +++ b/AIS-CJS/jobkorea_apply_urls.csv @@ -0,0 +1,21 @@ + ̸, ,,з,, , ޿, , Ⱓ +ߴܺ,ʵ ũ 1 ܺ (Ʈ尳/鿣尳/ȴ/񽺱ȹ),¹,,,,,, 2022.11.01(ȭ) 2022.11.30() +28,[ 28] MD//÷ /ؿ /PM/UI/UX ̳/Ʈ /DBA/̳/( SNS )/λ/(3PL)/ Ϲݱ Ը ä,ԡ,,,,,, 2022.11.14() 2022.12.14() +߾īTV,[īTV]۷ι 鿣/Ʈ/React Native ,3,,,,,, 2022.11.14() 2022.11.27() +ī24,[ECַDZ׷] Ʈ(Front-End) ,¹,,,,,, +߸ġ,[] UI ä (Ʈ),4,,,,,, 2022.11.10() 2022.11.23() +(),[Ƽü] Ʈ ,5,,,,,, 2022.11.07() 2022.12.08() +ij۷ι,Ʈ ۺ ,3,,,,,, 2022.11.04() 2022.12.30() +޳,[迭/ ڵ] Ʈ ä,,,,,,, 2022.11.02() 2022.12.01() +(),[] Ʈ ,3,,,,,, 2022.11.02() 2022.12.02() +̾ؿ,Ʈ () ,8,,,,,, 2022.11.01(ȭ) 2023.01.30() +ߺ, Ʈ/鿣/߿ / ä,¹,,,,,, 2022.10.24() 2022.11.30() +̹Ʈ,Internal Service React Ʈ ,,,,,,, 2022.10.15() 2022.11.30() +߿ũ,[ũ] `ι` Ʈ ä,3,,,,,, 2022.09.27(ȭ) 2022.11.30() +ĴٵƮ,[STD] Ʈ & ۺ ä,¹,,,,,, +(),[] űԼ Ʈ ,3,,,,,, 2022.10.18(ȭ) 2022.11.17() +Ƽ,[Ƽ] ê Ʈ ,2,,,,,, +ݸ,[ݸ] ǥ (Ʈ ),,,,,,, 2022.09.28() 2022.12.27(ȭ) +̽׷,Ʈ ä,3,,,,,, +()Ÿ,[Secta9ine] Űũ ä(Ʈ/鿣),5,,,,,, 2022.11.15(ȭ) 2022.11.29(ȭ) +ߴ׷,[] Ʈ鿣 ä,,,,,,, 2022.11.15(ȭ) 2022.12.14() diff --git a/AIS-CJS/zNex~$harejobkorea_apply_urls.csv b/AIS-CJS/zNex~$harejobkorea_apply_urls.csv new file mode 100644 index 0000000000000000000000000000000000000000..b079bcb3974b504570149d752261e084e3ba375f GIT binary patch literal 668 zcmeZZaArtl$N|D&h75*8h9V%(jUf}rPi63A$YV%j$Y&rHFfuSQxG=Z^P4Z?4Ven@N zV9;goWe8<32J+n*ynx1}08L9{CV{ Date: Wed, 23 Nov 2022 17:50:34 +0900 Subject: [PATCH 07/12] =?UTF-8?q?1=EB=B2=88=20=ED=81=AC=EB=A1=A4=EB=A7=81?= =?UTF-8?q?=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/jobSearch.py | 53 ++++++++++++++++++++-- AIS-CJS/jobkorea_apply_urls.csv | 42 ++++++++--------- AIS-CJS/zNex~$harejobkorea_apply_urls.csv | Bin 668 -> 0 bytes 3 files changed, 69 insertions(+), 26 deletions(-) delete mode 100644 AIS-CJS/zNex~$harejobkorea_apply_urls.csv diff --git a/AIS-CJS/jobSearch.py b/AIS-CJS/jobSearch.py index 07a4145..7eb4fab 100644 --- a/AIS-CJS/jobSearch.py +++ b/AIS-CJS/jobSearch.py @@ -8,9 +8,9 @@ def main(): # 잡코리아 f = open('jobkorea_apply_urls.csv', 'w') - f.write("기업 이름,모집 제목,경력,학력,우대,고용 형태, 급여, 지역, 모집 기간" + '\n') + f.write("기업 이름,모집 제목,경력,학력,우대,고용 형태, 급여, 지역, 모집 기간, 이미지 주소" + '\n') - keyword = "프론트엔드" # 키워드 입력 + keyword = "모바일앱" # 키워드 입력 # 페이지순서 for n in range(1, 2): @@ -38,18 +38,52 @@ def main(): #score = str(html2.select("#tab04 > article.artReadStrategy > div > div > div.devStartlist.listArea.specList > div > div.specListWrap > div > ul > li:nth-child(1) > div > span > em"))[5:8] date_tag1 = html2.select("#tab02 > div.divReadBx.clear.devMakeSameHeight > article.artReadPeriod > div > dl.date > dd:nth-child(2)") date_tag2 = html2.select("#tab02 > div.divReadBx.clear.devMakeSameHeight > article.artReadPeriod > div > dl.date > dd:nth-child(4)") + prefer_tag = html2.select("#dlPref > dd > span") + region_tag = html2.select("#container > section > div.readSumWrap.clear > article > div.tbRow.clear > div:nth-child(2) > dl > dd:nth-child(6) > a") + pay_tag = html2.select("#container > section > div.readSumWrap.clear > article > div.tbRow.clear > div:nth-child(2) > dl > dd:nth-child(4)") + edu_tag = html2.select("#container > section > div.readSumWrap.clear > article > div.tbRow.clear > div:nth-child(1) > dl > dd:nth-child(4) > strong") + pattern_tag = html2.select("#container > section > div.readSumWrap.clear > article > div.tbRow.clear > div:nth-child(2) > dl > dd:nth-child(2) > ul > li > strong") + image_tag = html2.select("#cologo") + + image = "" + for i in image_tag: + image = i['src'] + if image == "": + image = "이미지 없음" + else: + image = "http:" + image + date = "" + pay = "" prefer = "" region = "" - pay = "" - date = "" edu = "" pattern = "" for tag in date_tag1: date += "시작일 " + tag.getText() +" " for tag in date_tag2: date += "마감일 " + tag.getText() + for tag in prefer_tag: + prefer += tag.getText() + for tag in region_tag: + region += tag.getText() + for tag in pay_tag: + pay += tag.getText() + for tag in edu_tag: + edu += tag.getText() + for tag in pattern_tag: + pattern += tag.getText() + + pay = remove_blank(pay) + pay = pay.replace(",","") + region = remove_blank(region) + prefer = remove_blank(prefer) + pattern = remove_blank(pattern) + edu = remove_blank(edu) + date = remove_blank(date) + if date == "": + date = "상시 채용" f.write( - company_name + ',' + detail + ','+ exp + ','+ edu + ',' + prefer + ',' + pattern + ',' + pay + ',' + region + ',' + date + '\n') + company_name + ',' + detail + ',' + exp + ',' + edu + ',' + prefer + ',' + pattern + ',' + pay + ',' + region + ',' + date + ',' + image + '\n') time.sleep(1) # 1초 @@ -62,6 +96,15 @@ def main(): print("잡코리아 크롤링이 완료되었습니다!!") + +def remove_blank(string): + string = string.strip() + string = string.replace("\n", "") + string = string.replace("\r", "") + return string + + + if __name__ == "__main__": main() diff --git a/AIS-CJS/jobkorea_apply_urls.csv b/AIS-CJS/jobkorea_apply_urls.csv index b1b0a4f..63b337f 100644 --- a/AIS-CJS/jobkorea_apply_urls.csv +++ b/AIS-CJS/jobkorea_apply_urls.csv @@ -1,21 +1,21 @@ - ̸, ,,з,, , ޿, , Ⱓ -ߴܺ,ʵ ũ 1 ܺ (Ʈ尳/鿣尳/ȴ/񽺱ȹ),¹,,,,,, 2022.11.01(ȭ) 2022.11.30() -28,[ 28] MD//÷ /ؿ /PM/UI/UX ̳/Ʈ /DBA/̳/( SNS )/λ/(3PL)/ Ϲݱ Ը ä,ԡ,,,,,, 2022.11.14() 2022.12.14() -߾īTV,[īTV]۷ι 鿣/Ʈ/React Native ,3,,,,,, 2022.11.14() 2022.11.27() -ī24,[ECַDZ׷] Ʈ(Front-End) ,¹,,,,,, -߸ġ,[] UI ä (Ʈ),4,,,,,, 2022.11.10() 2022.11.23() -(),[Ƽü] Ʈ ,5,,,,,, 2022.11.07() 2022.12.08() -ij۷ι,Ʈ ۺ ,3,,,,,, 2022.11.04() 2022.12.30() -޳,[迭/ ڵ] Ʈ ä,,,,,,, 2022.11.02() 2022.12.01() -(),[] Ʈ ,3,,,,,, 2022.11.02() 2022.12.02() -̾ؿ,Ʈ () ,8,,,,,, 2022.11.01(ȭ) 2023.01.30() -ߺ, Ʈ/鿣/߿ / ä,¹,,,,,, 2022.10.24() 2022.11.30() -̹Ʈ,Internal Service React Ʈ ,,,,,,, 2022.10.15() 2022.11.30() -߿ũ,[ũ] `ι` Ʈ ä,3,,,,,, 2022.09.27(ȭ) 2022.11.30() -ĴٵƮ,[STD] Ʈ & ۺ ä,¹,,,,,, -(),[] űԼ Ʈ ,3,,,,,, 2022.10.18(ȭ) 2022.11.17() -Ƽ,[Ƽ] ê Ʈ ,2,,,,,, -ݸ,[ݸ] ǥ (Ʈ ),,,,,,, 2022.09.28() 2022.12.27(ȭ) -̽׷,Ʈ ä,3,,,,,, -()Ÿ,[Secta9ine] Űũ ä(Ʈ/鿣),5,,,,,, 2022.11.15(ȭ) 2022.11.29(ȭ) -ߴ׷,[] Ʈ鿣 ä,,,,,,, 2022.11.15(ȭ) 2022.12.14() + ̸, ,,з,, , ޿, , Ⱓ, ̹ ּ +Ͼö̾𽺢,Ͼö̾() 繫ȸ ä,ԡ1,̻, ,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.11.11() 2022.12.11(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL +Ͼö̾𽺢,ؿܿ » ä (-),ԡ,ʴ̻,,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.10.27() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL +Ͼö̾𽺢,ؿܿ Ի » ä (-븮),ԡ,ʴ̻,,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.10.27() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL +Ʈ,Ͼ UX/UI ̳ ä ( ī ),ԡ1,з¹, (ϡ˹),,ȸ系Կ - , , 2022.11.23() 2023.01.16(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2020/4/2s3dc008Ra_xXwfdak3x2ca0ecYrUk_iv2ca.png?v=202211231749&hash=r&serviceCode=CL +뿡ġƼ,[] JAVA Ͼ Android App Framework ,ԡ1,з¹,óСǻͰ,,ȸ系Կ , , 2022.11.07() 2022.12.07(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/4/14/2818z007Pp_5W5a2k3723p0dzMhS4_6zzp.jpg?v=202211231749&hash=r&serviceCode=CL +()Ķ,2.[] ڹ f/w  sm ̺긮 JSTL AJAX Highchart Rest API TILES,6,ʴ̻, ,,ȸ系Կ - , , 2022.11.22(ȭ) 2023.02.20(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2016/8/2715e007Pd_4W9h2c3129d0deMnS7_8red.gif?v=202211231749&hash=r&serviceCode=CL +Ǫ峪,[Ǫ峪] ŷ ,2,з¹,,,ȸ系Կ - , , 2022.11.21() 2022.12.21(),̹ +ý,[ý] ( Ǵ ),,̻,,, 3800 ̻ - , ߱, 2022.11.10() 2022.11.27(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2020/3/2y7cq005Rf_jK2d2f2if0bqYeIo_qf.png?v=202211231749&hash=r&serviceCode=CL + ,Ͼ(iOS AOS) ڸ ʴϴ.,ԡ,з¹, а ,,ȸ系Կ - , , 2022.11.08(ȭ) 2022.12.05(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2012/1/2w9nb006X__aGpt_2d2q_0cbVzRx_2b_.jpg?v=202211231749&hash=r&serviceCode=CL +̸Ʈ, ,3,ʴ̻,,,ȸ系Կ - , , 2022.11.01(ȭ) 2022.11.30(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2022/6/20/JK_CO_kjQGOwD22062018204704.jpg?v=202211231749 +, ۸ ÷ ȹ ä,3,̻,,,ȸ系Կ ,⵵ д籸, 2022.10.25(ȭ) 2022.11.25(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2016/4/2h9l2006Xx_kGj6n2g2mx0c2VvRo_22x.jpg?v=202211231749&hash=r&serviceCode=CL +нƮ̺,[нƮ̺] (React Native),3,з¹,,,ȸ系Կ , , 2022.10.21() 2022.11.30(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/12/28/JK_CO_NRAe6LE21122818331093.png?v=202211231749 +ķ, ,2,з¹, а СǻͰ,,ȸ系Կ - , õ, 2022.10.18(ȭ) 2023.01.16(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/12/14/JK_CO_r9bIZrY21121412364405.png?v=202211231749 +Ÿ, / ̳ » ,3,ʴ̻,,,ȸ系Կ - , ı, 2022.11.21() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2015/12/2k7yt00aRa_vKwblcxpz3o2xa0gtYjIn_gjfv2ta.jpg?v=202211231749&hash=r&serviceCode=CL +,[ITȸ] Ƽ Unity () ,ԡ,̻, СǻͰ,, 2400~7000 - , õ, 2022.11.21() 2022.12.31(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/2/04/2m9pl00bXa_jGoejudf2d3j2na0hlVwRg_adcmxlla.png?v=202211231749&hash=r&serviceCode=CL +߾Ƽ,JAVA/Ͼð ʺڵ ,ԡ1,ʴ̻, а [Ϻ] JLPT 2 ̻ óСǻͰ,, 3000 ̻ - ,Ϻ , ä,̹ +߶۴, ȣ ä,¹,з¹, ,,ȸ系Կ - ,⵵ д籸, ä,http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2015/12/2i7ws00aRg_fKjlgitac3k2bg0gsYoIi_okzy2sg.jpg?v=202211231749&hash=r&serviceCode=CL +츮Ʈ,[츮Ʈ] / ȹ ,,з¹,ǻȰɷ ,,ȸ系Կ - , ߱, ä,http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2022/11/11/JK_CO_sbssXBK22111110563413.png?v=202211231749 +ǻ,[ǻ] (/) ,ԡ,̻,αٰ,,ȸ系Կ - , õ, 2022.11.07() 2022.12.07(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/11/2o5dk009Dz_cGurrl2j3a2ez0fkFqOd_cezakz.png?v=202211231749&hash=r&serviceCode=CL +Ʈ,Ϻ ý ۰JAVA Python ȭ ν ,3,̻,Ϻ [Ϻ] JPTó,,ȸ系Կ - ,Ϻ , ä,̹ diff --git a/AIS-CJS/zNex~$harejobkorea_apply_urls.csv b/AIS-CJS/zNex~$harejobkorea_apply_urls.csv deleted file mode 100644 index b079bcb3974b504570149d752261e084e3ba375f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmeZZaArtl$N|D&h75*8h9V%(jUf}rPi63A$YV%j$Y&rHFfuSQxG=Z^P4Z?4Ven@N zV9;goWe8<32J+n*ynx1}08L9{CV{ Date: Wed, 30 Nov 2022 13:52:36 +0900 Subject: [PATCH 08/12] =?UTF-8?q?api=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EA=B0=80=EC=A0=B8=EC=98=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/dataTrans.py | 21 +++++++++++++++++++++ AIS-CJS/jobAPI.py | 29 +++++++++++++++++++++++++++++ AIS-CJS/jobkorea_apply_urls.csv | 21 --------------------- 3 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 AIS-CJS/dataTrans.py create mode 100644 AIS-CJS/jobAPI.py delete mode 100644 AIS-CJS/jobkorea_apply_urls.csv diff --git a/AIS-CJS/dataTrans.py b/AIS-CJS/dataTrans.py new file mode 100644 index 0000000..3c35170 --- /dev/null +++ b/AIS-CJS/dataTrans.py @@ -0,0 +1,21 @@ +import socket + +#연결할 Host, Port 정보 +HOST = '175.200.108.201' +PORT = 5000 + +#소켓 생성 +client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +#서버에 접속 +client_socket.connect((HOST, PORT)) + +#서버에 "Hello world"메세지 전송 +client_socket.sendall("Hello world".encode()); +print("데이터 전송") +#서버에게서 메시지를 수신(에코) +data = client_socket.recv(1024) +print('Received', repr(data.decode())) + +#클라이언트 소켓을 닫는다. +client_socket.close() \ No newline at end of file diff --git a/AIS-CJS/jobAPI.py b/AIS-CJS/jobAPI.py new file mode 100644 index 0000000..4890502 --- /dev/null +++ b/AIS-CJS/jobAPI.py @@ -0,0 +1,29 @@ +from urllib.request import urlopen +from urllib.parse import urlencode, unquote, quote_plus +import urllib +import requests +import json +from xml.etree.ElementTree import parse +import xmltodict + +url = "http://openapi.work.go.kr/opi/opi/opia/wantedApi.do" +key = "WNLB0BQ31I58AQ2YDZ4ET2VR1HK" +occupation = "&occupation=023|024|025|026" +queryParams = '?' + urlencode({quote_plus('authKey') : 'WNLB0BQ31I58AQ2YDZ4ET2VR1HK', quote_plus('callTp'): 'L', quote_plus('returnType'): 'XML',quote_plus('startPage'): '1', quote_plus('display'): '200', + quote_plus('occupation'): '023|024|025|026'}) + + + +request = urllib.request.Request(url + unquote(queryParams)) + + +response_body = urlopen(request, timeout=60).read() # get bytes data + + +decode_data = response_body.decode('utf-8') +print(type(decode_data)) + +xml_parse = xmltodict.parse(decode_data) # string인 xml 파싱 +xml_dict = json.loads(json.dumps(xml_parse)) + +print(xml_dict) \ No newline at end of file diff --git a/AIS-CJS/jobkorea_apply_urls.csv b/AIS-CJS/jobkorea_apply_urls.csv deleted file mode 100644 index 63b337f..0000000 --- a/AIS-CJS/jobkorea_apply_urls.csv +++ /dev/null @@ -1,21 +0,0 @@ - ̸, ,,з,, , ޿, , Ⱓ, ̹ ּ -Ͼö̾𽺢,Ͼö̾() 繫ȸ ä,ԡ1,̻, ,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.11.11() 2022.12.11(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL -Ͼö̾𽺢,ؿܿ » ä (-),ԡ,ʴ̻,,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.10.27() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL -Ͼö̾𽺢,ؿܿ Ի » ä (-븮),ԡ,ʴ̻,,,ȸ系Կ - ,⵵ Ⱦ ȱ, 2022.10.27() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/5/2a5tt009Dx_aGczlh2s3n2tx0ftFeOg_wglitx.jpg?v=202211231749&hash=r&serviceCode=CL -Ʈ,Ͼ UX/UI ̳ ä ( ī ),ԡ1,з¹, (ϡ˹),,ȸ系Կ - , , 2022.11.23() 2023.01.16(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2020/4/2s3dc008Ra_xXwfdak3x2ca0ecYrUk_iv2ca.png?v=202211231749&hash=r&serviceCode=CL -뿡ġƼ,[] JAVA Ͼ Android App Framework ,ԡ1,з¹,óСǻͰ,,ȸ系Կ , , 2022.11.07() 2022.12.07(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/4/14/2818z007Pp_5W5a2k3723p0dzMhS4_6zzp.jpg?v=202211231749&hash=r&serviceCode=CL -()Ķ,2.[] ڹ f/w  sm ̺긮 JSTL AJAX Highchart Rest API TILES,6,ʴ̻, ,,ȸ系Կ - , , 2022.11.22(ȭ) 2023.02.20(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2016/8/2715e007Pd_4W9h2c3129d0deMnS7_8red.gif?v=202211231749&hash=r&serviceCode=CL -Ǫ峪,[Ǫ峪] ŷ ,2,з¹,,,ȸ系Կ - , , 2022.11.21() 2022.12.21(),̹ -ý,[ý] ( Ǵ ),,̻,,, 3800 ̻ - , ߱, 2022.11.10() 2022.11.27(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2020/3/2y7cq005Rf_jK2d2f2if0bqYeIo_qf.png?v=202211231749&hash=r&serviceCode=CL - ,Ͼ(iOS AOS) ڸ ʴϴ.,ԡ,з¹, а ,,ȸ系Կ - , , 2022.11.08(ȭ) 2022.12.05(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2012/1/2w9nb006X__aGpt_2d2q_0cbVzRx_2b_.jpg?v=202211231749&hash=r&serviceCode=CL -̸Ʈ, ,3,ʴ̻,,,ȸ系Կ - , , 2022.11.01(ȭ) 2022.11.30(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2022/6/20/JK_CO_kjQGOwD22062018204704.jpg?v=202211231749 -, ۸ ÷ ȹ ä,3,̻,,,ȸ系Կ ,⵵ д籸, 2022.10.25(ȭ) 2022.11.25(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2016/4/2h9l2006Xx_kGj6n2g2mx0c2VvRo_22x.jpg?v=202211231749&hash=r&serviceCode=CL -нƮ̺,[нƮ̺] (React Native),3,з¹,,,ȸ系Կ , , 2022.10.21() 2022.11.30(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/12/28/JK_CO_NRAe6LE21122818331093.png?v=202211231749 -ķ, ,2,з¹, а СǻͰ,,ȸ系Կ - , õ, 2022.10.18(ȭ) 2023.01.16(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/12/14/JK_CO_r9bIZrY21121412364405.png?v=202211231749 -Ÿ, / ̳ » ,3,ʴ̻,,,ȸ系Կ - , ı, 2022.11.21() 2022.11.26(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2015/12/2k7yt00aRa_vKwblcxpz3o2xa0gtYjIn_gjfv2ta.jpg?v=202211231749&hash=r&serviceCode=CL -,[ITȸ] Ƽ Unity () ,ԡ,̻, СǻͰ,, 2400~7000 - , õ, 2022.11.21() 2022.12.31(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2021/2/04/2m9pl00bXa_jGoejudf2d3j2na0hlVwRg_adcmxlla.png?v=202211231749&hash=r&serviceCode=CL -߾Ƽ,JAVA/Ͼð ʺڵ ,ԡ1,ʴ̻, а [Ϻ] JLPT 2 ̻ óСǻͰ,, 3000 ̻ - ,Ϻ , ä,̹ -߶۴, ȣ ä,¹,з¹, ,,ȸ系Կ - ,⵵ д籸, ä,http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2015/12/2i7ws00aRg_fKjlgitac3k2bg0gsYoIi_okzy2sg.jpg?v=202211231749&hash=r&serviceCode=CL -츮Ʈ,[츮Ʈ] / ȹ ,,з¹,ǻȰɷ ,,ȸ系Կ - , ߱, ä,http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2022/11/11/JK_CO_sbssXBK22111110563413.png?v=202211231749 -ǻ,[ǻ] (/) ,ԡ,̻,αٰ,,ȸ系Կ - , õ, 2022.11.07() 2022.12.07(),http://imgs.jobkorea.co.kr/img1/_whitebg/200X80/Co_Logo/Logo/2017/11/2o5dk009Dz_cGurrl2j3a2ez0fkFqOd_cezakz.png?v=202211231749&hash=r&serviceCode=CL -Ʈ,Ϻ ý ۰JAVA Python ȭ ν ,3,̻,Ϻ [Ϻ] JPTó,,ȸ系Կ - ,Ϻ , ä,̹ From 23d671cb78cf2a5d30cebb41ace1041f33c3300d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 7 Dec 2022 14:42:42 +0900 Subject: [PATCH 09/12] http post --- AIS-CJS/jobAPI.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/AIS-CJS/jobAPI.py b/AIS-CJS/jobAPI.py index 4890502..447d8a7 100644 --- a/AIS-CJS/jobAPI.py +++ b/AIS-CJS/jobAPI.py @@ -5,6 +5,9 @@ import json from xml.etree.ElementTree import parse import xmltodict +from json.decoder import JSONDecoder +from os import error + url = "http://openapi.work.go.kr/opi/opi/opia/wantedApi.do" key = "WNLB0BQ31I58AQ2YDZ4ET2VR1HK" @@ -26,4 +29,10 @@ xml_parse = xmltodict.parse(decode_data) # string인 xml 파싱 xml_dict = json.loads(json.dumps(xml_parse)) -print(xml_dict) \ No newline at end of file +print(xml_dict) +headers = {} +headers = {'content-type': 'application/json'} + +postData = xml_dict + +response = requests.post("https://test.com", headers=headers, data=postData) From fb7d9a7c8a5a07e2fb2d6141dd94f51d2df48470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 21 Dec 2022 10:29:50 +0900 Subject: [PATCH 10/12] wordcloud update --- AIS-CJS/csvjson.json | 28 ++++++++++++++++++++++++++++ AIS-CJS/jobAPI.py | 18 +++++++++++------- AIS-CJS/text.csv | 26 ++++++++++++++++++++++++++ AIS-CJS/wordCloud.py | 16 ++++++++++++++++ 4 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 AIS-CJS/csvjson.json create mode 100644 AIS-CJS/text.csv create mode 100644 AIS-CJS/wordCloud.py diff --git a/AIS-CJS/csvjson.json b/AIS-CJS/csvjson.json new file mode 100644 index 0000000..98281dd --- /dev/null +++ b/AIS-CJS/csvjson.json @@ -0,0 +1,28 @@ + + { + "프로그래밍 언어": 100, + "자바": 62, + "자바 프로그래밍": 62, + "파이썬 프로그래밍": 41, + "파이썬": 40, + "프로그래밍 갤러리": 39, + "코딩": 34, + "프로그램": 34, + "게임 프로그래밍": 33, + "c++": 31, + "객체": 30, + "컴퓨터 프로그래밍": 28, + "c 언어 프로그래밍": 28, + "c 언어": 27, + "객체 지향": 25, + "객체 지향 프로그래밍": 25, + "함수형 프로그래밍": 21, + "안드로이드 프로그래밍": 21, + "소켓 프로그래밍": 20, + "시스템 프로그래밍": 20, + "java": 18, + "명품 자바 프로그래밍": 16, + "프로그래머": 15, + "알고리즘": 14, + "개발자": 13 + } diff --git a/AIS-CJS/jobAPI.py b/AIS-CJS/jobAPI.py index 447d8a7..2530aa9 100644 --- a/AIS-CJS/jobAPI.py +++ b/AIS-CJS/jobAPI.py @@ -26,13 +26,17 @@ decode_data = response_body.decode('utf-8') print(type(decode_data)) -xml_parse = xmltodict.parse(decode_data) # string인 xml 파싱 +xml_parse = xmltodict.parse(decode_data)# string인 xml 파싱 xml_dict = json.loads(json.dumps(xml_parse)) print(xml_dict) -headers = {} -headers = {'content-type': 'application/json'} - -postData = xml_dict - -response = requests.post("https://test.com", headers=headers, data=postData) +with open('job.json', 'w') as f: + json.dump(xml_dict, f) + +#http post 통신 코드 +# headers = {} +# headers = {'content-type': 'application/json'} +# +# postData = xml_dict +# +# response = requests.post("https://test.com", headers=headers, data=postData) diff --git a/AIS-CJS/text.csv b/AIS-CJS/text.csv new file mode 100644 index 0000000..4cbdff2 --- /dev/null +++ b/AIS-CJS/text.csv @@ -0,0 +1,26 @@ +Ű, +α׷ ,100 +ڹ,62 +ڹ α׷,62 +̽ α׷,41 +̽,40 +α׷ ,39 +ڵ,34 +α׷,34 + α׷,33 +c++,31 +ü,30 +ǻ α׷,28 +c α׷,28 +c ,27 +ü ,25 +ü α׷,25 +Լ α׷,21 +ȵ̵ α׷,21 + α׷,20 +ý α׷,20 +java,18 +ǰ ڹ α׷,16 +α׷,15 +˰,14 +,13 diff --git a/AIS-CJS/wordCloud.py b/AIS-CJS/wordCloud.py new file mode 100644 index 0000000..34f22ca --- /dev/null +++ b/AIS-CJS/wordCloud.py @@ -0,0 +1,16 @@ + +import json +import matplotlib.pyplot as plt + +from wordcloud import WordCloud + +inputFileName = 'csvjson' +data = json.loads(open(inputFileName+'.json', 'r', encoding= 'utf-8').read()) +wc = WordCloud(font_path="c:/Windows/fonts/malgun.ttf", background_color='ivory', width=800, height=600) + +cloud = wc.fit_words(data) +plt.Figure(figsize=(15, 20)) +plt.imshow(cloud) +plt.axis('off') +plt.savefig("wordcloud.png") +plt.show() \ No newline at end of file From a53317b7a1ec3eb3bf03cc0cd4871644d9f0d0f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 21 Dec 2022 12:14:38 +0900 Subject: [PATCH 11/12] =?UTF-8?q?=EB=82=B4=EA=B0=80=EB=A8=B9=EC=9D=8C=20?= =?UTF-8?q?=E3=85=85=E3=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/wordCloud.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/AIS-CJS/wordCloud.py b/AIS-CJS/wordCloud.py index 34f22ca..0938c87 100644 --- a/AIS-CJS/wordCloud.py +++ b/AIS-CJS/wordCloud.py @@ -6,7 +6,11 @@ inputFileName = 'csvjson' data = json.loads(open(inputFileName+'.json', 'r', encoding= 'utf-8').read()) -wc = WordCloud(font_path="c:/Windows/fonts/malgun.ttf", background_color='ivory', width=800, height=600) +font_path = "C:/Users/dofury/AppData/Local/Microsoft/Windows/Fonts/MaruBuri-Bold.ttf" +wc = WordCloud(font_path=font_path, background_color='ivory', width=800, height=600) + + + cloud = wc.fit_words(data) plt.Figure(figsize=(15, 20)) From 736d0d87f20daaf8a252ca76436d86b8c81d031a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=8F=84=ED=9B=88=20=EC=B0=A8?= Date: Wed, 21 Dec 2022 17:00:09 +0900 Subject: [PATCH 12/12] =?UTF-8?q?=ED=95=A9=EC=B9=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIS-CJS/jobAPI.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/AIS-CJS/jobAPI.py b/AIS-CJS/jobAPI.py index 2530aa9..4c0f78d 100644 --- a/AIS-CJS/jobAPI.py +++ b/AIS-CJS/jobAPI.py @@ -7,36 +7,45 @@ import xmltodict from json.decoder import JSONDecoder from os import error +import glob +data = [] +page = 1 url = "http://openapi.work.go.kr/opi/opi/opia/wantedApi.do" key = "WNLB0BQ31I58AQ2YDZ4ET2VR1HK" occupation = "&occupation=023|024|025|026" -queryParams = '?' + urlencode({quote_plus('authKey') : 'WNLB0BQ31I58AQ2YDZ4ET2VR1HK', quote_plus('callTp'): 'L', quote_plus('returnType'): 'XML',quote_plus('startPage'): '1', quote_plus('display'): '200', - quote_plus('occupation'): '023|024|025|026'}) +for page in range(1,11): + queryParams = '?' + urlencode({quote_plus('authKey') : 'WNLB0BQ31I58AQ2YDZ4ET2VR1HK', quote_plus('callTp'): 'L', quote_plus('returnType'): 'XML',quote_plus('startPage'): page, quote_plus('display'): '200', + quote_plus('occupation'): '023|024|025|026'}) -request = urllib.request.Request(url + unquote(queryParams)) + request = urllib.request.Request(url + unquote(queryParams)) -response_body = urlopen(request, timeout=60).read() # get bytes data + response_body = urlopen(request, timeout=60).read() # get bytes data -decode_data = response_body.decode('utf-8') -print(type(decode_data)) + decode_data = response_body.decode('utf-8') + print(type(decode_data)) -xml_parse = xmltodict.parse(decode_data)# string인 xml 파싱 -xml_dict = json.loads(json.dumps(xml_parse)) + xml_parse = xmltodict.parse(decode_data)# string인 xml 파싱 + xml_dict = json.loads(json.dumps(xml_parse)) -print(xml_dict) -with open('job.json', 'w') as f: - json.dump(xml_dict, f) + print(xml_dict) + with open('job' +str(page) + '.json', 'w') as f: + json.dump(xml_dict, f) + +for f in glob.glob("job*.json"): + with open(f, encoding="utf-8") as infile: + data.append(json.load(infile)) + +with open("job.json",'w', encoding="utf-8") as outfile: + json.dump(data, outfile, ensure_ascii=False, indent="\t") #http post 통신 코드 # headers = {} # headers = {'content-type': 'application/json'} -# # postData = xml_dict -# # response = requests.post("https://test.com", headers=headers, data=postData)