본문 바로가기

[저장용] 임시 보관소

원티드 공고 검색기

[2024/01/31 기준 작성]

(검색기 다운 링크는 하단에)

 

원티드 공고를 검색하려하는데 원티드는 태그와 공고 제목만이 검색이 가능한거 같다.

 

원티드에서 검색을하면 제목만 검색이 가능하다

 

위의 url은 https://www.wanted.co.kr/search?query=%EC%9E%AC%ED%83%9D&tab=position이다 url을 살펴보면

query를 통한 검색이 있지만 회사명, 공고 제목 등 한정된 기능만 제공해주는듯하다.

 

따라서 모든 공고를 다 뒤져서 공고내에 검색어가 포함되는지 찾는것이 가장 확실한 방법이 될거 같다.

 

 

1. 먼저 리스트를 불러오는 api를 찾는다.

https://www.wanted.co.kr/wdlist/518?country=kr&job_sort=job.recommend_order&years=-1&locations=all 아무 검색 조건도 넣지 않은 기본 리스트이다. 

적극 채용 중인 회사란은 따로 부르는것 같고 아래부터가 리스트이다.

여기서 각 공고들은 고유의 아이디를 갖고 있고 해당 공고를 누르면 해당 공고로 이동된다. https://www.wanted.co.kr/wd/159438 이 공고를 예시로 들면 id 가 159438이다. 이를 사용해 리스트 api를 찾아본다.

개발자 도구에서 id를 검색해보면 api를 쉽게 찾을 수 있다.

 

리스트를 불러오는 url은 아래와 같이 생겼다. ( https://www.wanted.co.kr/api/chaos/navigation/v1/results?1706718249612&job_group_id=518&years=-1&locations=all&country=kr&job_sort=job.recommend_order&limit=12&offset=48 )

 

보기 편하게 포스트맨으로 옮겼다

리스트 response

더보기
{
    "data": [
        {
            "id"201457,
            "reward_total""100만원",
            "is_bookmark"false,
            "company": {
                "id"30111,
                "name""디플래닉스(Dplanex)",
                "application_response_stats": {
                    "avg_rate"0.0,
                    "level""very_low"
                }
            },
            "title_img": {
            },
            "address": {
                "company_id"null,
                "country""한국",
                "location""서울"
            },
            "position""DevOps (4~6년)",
            "category_tag": {
                "parent_id"518,
                "id"674
            }
        },
 
...
 
 
    "links": {
        "prev"null,
        "next""/api/chaos/navigation/v1/results?job_group_id=518&years=-1&locations=all&country=kr&job_sort=job.recommend_order&offset=12&limit=12"
    }
}

위 response를 살펴보면 편리하게도 다음 페이지 url을 통으로 준다. 이를 그대로 request하면 다음 페이지가 나온다.

 

2. detail 화면 분석하기
url : https://www.wanted.co.kr/wd/201457

{wanted_url}/wd/{id} 형식이다.

 

마찬가지로 개발자 도구를 통해서 api를 뒤져보면 https://www.wanted.co.kr/api/chaos/jobs/v1/201457/details?1706719703099=이런 url이 나온다. detail뒤에는 뭔지 모르겠다. 없애도 같은 내용을 불러오는거 같다.

 

부를 때마다 뒤의 숫자가 바뀌는 것을 보아 시간인거 같아서 timestamp로 변환해보니 2024-01-31 16:48:23 이 나왔다.

저 시간을 어디에 쓰는지 모르겠지만 별로 안중요한거 같으니 없애고 호출하겠다.

 

최종적으로 {wanted_url}/api/chaos/jobs/v1/{id}/details 형식으로 detail을 부르면 된다.

이제 아래 response json을 분석해서 필요한 내용이 있는지 분류하면된다.

더보기
{
    "application"null,
    "job": {
        "id"201457,
        "status""active",
        "due_time"null,
        "detail": {
            "id"206085,
            "position""DevOps (4~6년)",
            "intro""==포지션 상세==",
            "main_tasks""==주요 업무==",
            "requirements""==자격 요건==",
            "preferred_points""==우대 사항==",
            "benefits""==혜택 및 복지=="
        },
        "company": {
            "id"30111,
            "name""회사명",
            "industry_name""IT, 컨텐츠",
            "company_tags": [
                {
                    "tag_type_id"9969,
                    "title""건강검진",
                    "kind_title""COMPANY_MANAGEMENT"
                },
                ...
               // 태그들
                 
            ],
            "logo_img": {
                "origin""https://static.wanted.co.kr/images/wdes/0_4.bac574b4.png",
                "thumb""https://static.wanted.co.kr/images/wdes/0_5.bac574b4.png"
            },
            "application_response_stats": {
                "id"19698,
                "duration"null,
                "rate"76.47,
                "level""normal",
                "reply_type""applied_reply_done",
                "target_count"636,
                "remain_count_to_next"1,
                "company_id"30111
            },
            "position_count"4,
            "highlight_tags": []
        },
        "address": {
               ...
        },
        "reward": {
 
        },
        "category_tag": {
            "parent_tag": {
                "id"518,
                "text""개발"
            },
            "child_tags": [
                {
                    "id"674,
                    "text""DevOps / 시스템 관리자"
                }
            ]
        },
        "skill_tags": [
            {
                "tag_type_id"1413,
                "text""GitLab"
            }
            // == 기술 스택, 툴==
           ...
        ],
        "title_images": [
           ...
        ],
        "is_bookmark"false,
        "is_company_follow"false,
        "hidden"false,
        "annual_to"6,
        "annual_from"4,
        "is_newbie"false,
        "name"null
    }
}

 

3. detail, category_tag , skill_tags 등을 통해서 자기 마음대로 가공하면된다.

 

4. 이를 활용한 검색기

아래 링크에서 다운이 가능하다

https://drive.google.com/file/d/1iXC1kzkimvf5nXRFYcVBcCFWpX2aKHRW/view?usp=drive_link

작성일 기준 개발자 공고는 약 5000개 미만이다. 한번에 12개씩 확인하므로 약 400번 정도 반복하면 리스트가 완료되고 이후에는 몇프로 진행됐는지 표시된다.

 

검색은 띄어쓰기와 , (쉼표)를 기준으로 검색어를 나누고 " " 안에 있는 검색어는 공백이 있어도 하나도 취급한다

전체 공고를 분석하는것이기 때문에 상당한 시간이 소요된다. 자기전에 돌려 놓자.

 

검색이 완료되면 아래같이 검색된 공고의 정보를 엑셀 파일로 저장해준다.

(개발자 직군 내에서만 검색하도록 설정돼 있다.)

'[저장용] 임시 보관소' 카테고리의 다른 글

[Python]프로그래머스 공고 검색기  (1) 2023.11.24
프로그래머스 새탭열기  (0) 2023.11.23
[저장용] 12-06 정리할거  (0) 2022.12.07