본문 바로가기
Python

[파이썬] 사람인 채용공고 추출 크롤링 해보기

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

파이썬 사람인 채용공고 추출 크롤링 해보기

이번 거는 사람인입니다. 이전에 제가 잡 코리아를 어떻게 클로징 하는가 그걸 보여드렸죠. 똑같은 방식으로 사람이 만들어 놨습니다. 사람이 만들어놨는데 뽑히는 거는 비슷해요. 예를 들면 어떤 지원 공고에 있는 키워드를 집어 의별을 그것에 따라 500개의 검색 결과를 끌고 옵니다. 근데 필드명이 회사명 여러분이 지원하시고자 하는 직무 그다음에 지원 방식 그다음에 지원하고자 하는 url 주소 이렇게 해서 뽑혀서 나와요 똑같습니다.

 

여러분들이 사람이 안에 이력서가 등록되어 있다면 그걸 통해서 즉시 바로 지원할 수 있는 게 있고요 그게 없다면 홈페이지 안에서 지원하는 거는 어쩔 수 없죠. 그거는 여러분들이 어쩔 수 없이 지원해야 되는 이 부분이 있긴 한데 이미 근데 제가 이런 곳을 만들어진 이유 중에 하나도 우리는 시간이 없잖아요. 우리는 정말 어 바쁩니다. 바쁜 인생을 살아야 되고 참 1분 1초가 참 많이 소중해요. 근데 이렇게 들어가는 시간을 많이 단축시키고 여러분께 많은 도움을 드리고자 해서 이렇게 만들어 놨습니다. 이거 관련해서 막히는 부분이 뭔가 이런 것이 있다라는 게 있으면 말씀해 주시면 됩니다. 그러면 제가 선을 봐서 여러분들께 조금이나마 도움을 드릴 수 있는 뭔가 방향 쪽으로 개선하실 부분이 있는지 없는지 이런 것도 한번 파악을 해서 전달드려보도록 할게요 오늘은 여기까지입니다 고맙습니다.

import requests
from bs4 import BeautifulSoup
import time
import datetime

f_2 =  open('C:/Users/user/raw/saramin_apply.csv', 'w', encoding='utf-8-sig')
f_2.write("date,회사명,직무,URL,지원방식"+'\n')

# 페이지순서

keyword = '키워드 데이터 분석'


for page_num in  range(1, 5) : 
    raw = requests.get('https://www.saramin.co.kr/zf_user/search/recruit?search_area=main&search_done=y&search_optional_item=n&searchType=search&searchword={}&recruitPage={}&recruitSort=relation&recruitPageCount=100'.format(keyword, page_num) 
                       , headers ={'User-Agent':'Mozilla/5.0'})
    html = BeautifulSoup(raw.text, "html.parser")
    results = html.select("div.item_recruit")
    for ar in results : 
        title = ar.select_one("a")['title'] #제목
        url =  "https://www.saramin.co.kr" +ar.select_one("a")['href'] #URL
        name = ar.select_one("div.area_corp")
        name2 = ar.select_one('div.area_corp > strong > a').text.strip()  #회사명
        title = title.replace(",", "")
        name2 = name2.replace(",", "")
        now = datetime.datetime.now()
        nowDate = now.strftime('%Y-%m-%d')
        try :
            apply = ar.select_one("button.sri_btn_xs").text
        except :
            apply = "홈페이지지원"
        f_2.write(nowDate + ',' + name2 + ','+ title + ',' + url +',' + apply +'\n')
        time.sleep(1)
    print(str(page_num) +"의 페이지 내 " +str(keyword)+ "의 채용공고 크롤링을 완료했습니다.")
    print("최종 엑셀 작업 마무리중 입니다.")

f_2.close()


print("사람인 최종 크롤링이 완료되었습니다.")
반응형

댓글