본문 바로가기
Python

[파이썬] 잡코리아 채용공고 추출 크롤링 해보기

by 퍼포먼스마케팅코더 2022. 8. 1.
반응형

이거는 혹시 여러분들 중에서 잡코리아 사이트를 많이 이용하시는 분들이 많으실 거예요. 대다수 사람들이 잡코리아를 모르시는 분들이 없죠. 왜냐하면 잡코리아 자체 직장인들 분에서도 이직이라든가 아니면 취업 준비생들 이러신 분들도 참 많이 애용하고 국내에서는 거의 탑급인 채용 사이트 아닙니까 요새 그런 말들이 있잖아요. 직장인들 분들 중에서도 늘 아침 출근길마다 자코리아 사이트 이걸 한 번씩 체험 사이트를 매달 보시지 않습니까 우리가 그렇게 해서 보면 많이 늦어요. 그렇죠 오늘은 제가 파이썬으로 잡코리아 채용 공고를 크롤링하는 이거를 만들어 놨어요. 

파이썬 잡코리아 채용공고 추출 크롤링 해보기

이 코딩을 보시면 아시겠지만 단순하게 돼 있습니다. 어떤 채용 공고에 따른 키워드를 쳐놓고요 그다음에 검색 결과 채용 공고의 결과가 나오지 않습니까 결과가 나오면 한 200군데 200개까지는 긁고 오도록 그거를 만들어 놨어요. 엄청 단수를 합니다. 참 이게 바쁘신 분들이 빨리빨리 원하는 이 체험 공고를 바로바로 볼 수 있도록 그렇게 만들어놨는데 보시면요. 이게 회사명 직무 그다음에 경력 위치 그다음에 지원 방식 지원 방식은 두 가지가 있습니다. 잡코리아에 등록되어 있는 이력서로 바로 지원을 할 수 있든지 아니면 홈페이지에 지원을 한다든지 이런 것도 있어서 홈페이지에 지원하면 어쩔 수 없죠. 홈페이지에 지원하면 홈페이지 안에 들어가서 거기에 있는 규격에 맞춰서 이제 개인 정보를 입력할 수밖에 없는데 여튼 뭐 그런 것에 따라서라도 빠르게 여러분들의 취업 이런 것을 지원하는 데 도움을 드리고자 이렇게 만들게 됐습니다. 많은 참고 부탁드립니다.

import requests
from bs4 import BeautifulSoup
import time
import datetime

#잡코리아

f =  open('C:/Users/user/raw/jobkorea_apply_urls.csv', 'w')
f.write("date,회사명,직무,URL,경력,위치,지원방식" + '\n')

keyword = '키워드 데이터 분석' #키워드 입력

#페이지순서
for n in range(1,20)  :
    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')
        f.write(nowDate + ',' + company_name + ',' + detail + ',' + url + ',' + exp + ',' + location +','+ apply+'\n') 
        time.sleep(1) #1초

    print(str(n)+"번째 페이지 내 " + str(keyword) + " 의 채용공고 크롤링을 완료했습니다.")
    print("최종 엑셀 작업 마무리중 입니다.")
  
f.close()

print("잡코리아 크롤링이 완료되었습니다.")
반응형

댓글