# 공공기관 채용정보에서 정보통신 공고만 추려서 리스팅하는 소스
import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
import ssl
import datetime
context = ssl._create_unverified_context()
# url을 변수에 삽입하여 저장한다.
url = "https://job.alio.go.kr/recruit.do?pageNo=1¶m=&search_yn=Y" \
"&idx=&recruitYear=&recruitMonth=&detail_code=R600020&location=R3010&work_type=R1010" \
"&work_type=R1030&career=R2020&education=R7010&education=R7040&education=R7050" \
"&education=R7060&replacement=N&s_date=2019.03.12&e_date=2019.10.12&org_name=&title=&order=REG_DATE"
html = urlopen(url, context=context)
bsObj = BeautifulSoup(html.read(), "html.parser")
table = bsObj.find("table",class_="tbl type_03")
def extractNumber(word):
i = int(re.findall('\d+', word)[0])
return i
list = []
trs = table.tbody.findAll("tr")
for idx, tr in enumerate(trs):
title = tr.select("td")[2].get_text().strip() # 제목
gName = tr.select("td")[3].get_text().strip() # 기업명
#place = tr.select("td")[4].get_text().strip().replace("\t","").replace("\r","").replace("\n","") # 장소
#type = tr.select("td")[5].get_text().strip() # 고용 형태
a = extractNumber(tr.select("td")[2].find("a").attrs['onclick'])
new_url = "https://job.alio.go.kr/recruitview.do?pageNo=1¶m=&search_yn=Y&idx={0}" \
"&recruitYear=&recruitMonth=&detail_code=R600020&location=R3010&work_type=R1010" \
"&work_type=R1030&career=R2020&education=R7010&education=R7040" \
"&education=R7050&education=R7060&replacement=N&s_date=2019.03.12" \
"&e_date=2019.10.12&org_name=&title=&order=REG_DATE".format(a)
#list.append(title + ", " + gName + ", "+new_url)
print(idx, title, gName, new_url)
#print (list)
실행 결과는 아래와 같다.
이후에는 크롤링 결과를 1) 엑셀 다운로드, 2) 메일 전송 3) 웹 서버에 띄우기 이런 정도로 포스팅을 해 볼까 생각중이다.