본문 바로가기
공부/파이썬 Python

원티드 구인공고 전부 크롤링하기! (python, BeautifulSoup)

by 혼밥맨 2021. 2. 15.
반응형

원티드 구인공고 전부 크롤링하기! (python, BeautifulSoup)

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
"""
원티드 
BASE_URL = "https://www.wanted.co.kr/wd/" (1001 ~ 47682) 
"""
 
import time
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from google.colab import drive
drive.mount('/content/drive', force_remount=True)
from openpyxl import Workbook
 
 
POSTING_NUM_LIST = []
JOB_DESC_LIST = []                 # 공고내용 (col-md-12)
TITLE_LIST = []                 # 채용공고 제목 (tm_mgt_title)
COMPANY_NAME_LIST = []             # 회사이름 (tm_h2_title_company_info)
CATEGORY_LIST = []                 # 부문 (rc_categories_name)
URL_LIST = []
 
 
# (1001 ~ 47664) 천에서 4.7만 (거의 5만개)
# 시작:1001
# 끝: 47682
 
def MAKE_URL():
  for i in range(1001476821):
    URL = "https://www.wanted.co.kr/wd/" + str(i)
    URL_LIST.append(URL)
 
 
# M A I N 
MAKE_URL()
 
ABC = ["A1""B1""C1""D1"]
columns = ["회사이름""직무""유사직무""채용내용"]
 
write_wb = Workbook()
write_ws = write_wb.active
 
# Head Columns 만들기
for (alphabet, col) in zip(ABC, columns): 
  write_ws[alphabet] = col
 
 
for i, URL in enumerate(URL_LIST):
  response = requests.get(URL)
  html = response.text
  soup = BeautifulSoup(html, 'lxml')
  soup = str(soup)
 
  jikmoo = soup[soup.find('"position":"'+ 12 : soup.find('"reward":'- 2]
  # print("직무:", jikmoo)
  yusa_jikmoo = soup[soup.find('"sub_categories":'+ 18 : soup.find('"position":"'- 2]
  # print("유사직무:", yusa_jikmoo)
  job_naeyong = soup[soup.find('"jd":'+ 5 : soup.find('"company_name":"'- 2]
  # print("채용내용:", job_naeyong)
  company_name = soup[soup.find('"company_name":"'+ 16 : soup.find('"lang":"'- 2]
  # print("회사이름:", company_name)
  
  write_ws.append([ 
                    company_name, 
                    jikmoo, 
                    yusa_jikmoo, 
                    job_naeyong 
                 ])
 
 
write_wb.save("Wanted.csv"# save csv
cs

원티드는 국내 구직공고와 커리어를 관리할 수 있는 웹사이트 서비스 기업입니다. 

 

- 원티드는 크롤링하기 쉬웠습니다. 왜냐하면 도메인이 간단했기 때문입니다.

- 그리고 아래와 같이 Google CAPTCHA 제약조건이 없었습니다. 

- 최대한 빠르게 크롤링하여도 어떠한 제약조건이 없었습니다.

Google reCAPTCHA

결과는 아래와 같이 깔끔하게 추출되었음을 확인할 수 있었습니다.

Wanted.csv

사실 잡코리아, 인쿠르트, 사람인 같이 대한민국 대표 구인공고 웹서비스 기업에서 크롤링을 했을 때 가장 많은 정보를 추출할 수 있습니다. 하지만 구인공고가 pdf 파일, 이미지로 업로드 되는 경우도 많이 있기 때문에 많은 노고가 필요됩니다.

지금 당장 할 수 있는 원티드, 피플앤잡, 인디드, 글래스도어, 더팀스 이렇게 크롤링하게 되었습니다.

반응형

댓글