파이썬 셀레니움 드롭다운 박스 선택하기

파이썬 셀레니움을 통한 크롤링을 할 때 드롭다운 박스를 선택하는 방법에 대해 설명드리겠습니다.

크롤링을 하다보면 단순히 키워드로만 검색하는 것이 아니라 다양한 옵션을 선택 후에 검색할 때가 있죠.

이때 드롭다운 박스(select tag)를 선택해야하는 경우에 셀레니움으로 어떻게 처리해야하는 지 직접 코드로 보여드리겠습니다.

 

 

 

셀레니움 드롭다운 select tag xpath로 크롤링하기

셀레니움의 가장 큰 장점이 xpath로 원하는 요소에 쉽게 접근하여 제어할 수 있다는 점이죠.

드롭다운 박스 역시 xpath로 접근하여 제어할 수 있습니다.

하지만 드롭다운(select tag)는 추가적으로 select 모듈을 사용하여 제어 가능합니다.

 

from selenium.webdriver.support.ui import Select

 

위의 select 모듈을 추가하면 Select() 함수를 사용할 수 있습니다.

Select()함수를 사용하기 이전에 크롤링할 페이지를 살펴보겠습니다.

 

 

 

 

잡코리아 검색 페이지 크롤링

잡코리아 검색창
잡코리아 검색창

 

 

위의 사진은 잡코리아 채용공고 상세검색 페이지입니다.

검색할 수 있는 옵션을 보면 다양하게 있고, select tag로 만들어진 드롭다운 박스도 보이실 거에요.

위의 사진에서 선택된 영역은 "추천순" / "최신업데이트순" / "마감일순" / "경력순" / "학력순" / "등록일순" 이 있습니다.

실제로 해당 드롭박스 select tag의 코드를 살펴보면 아래의 사진과 같습니다.

 

 

공고 정렬순 선택 드롭다운 select tag
공고 정렬 select tag

 

 

해당 드롭다운 박스는 "공고 정렬"을 위한 select tag 인걸 알 수 있습니다.

select tag 의 옵션(option)들을 살펴보면 어떤 옵션이 있고, 각 옵션이 어떤 value를 가지는지 알 수 있습니다.

이 정보를 바탕으로 select 모듈의 Select() 함수를 사용하면 됩니다.

 

 

 

 

셀레니움 드롭다운(select tag) Select() 함수로 선택하기

우선 전체 코드를 보여드리겠습니다.

 

# -*- coding: utf-8 -*-


from selenium import webdriver
from selenium.webdriver.support.ui import Select

def main():

    driver = webdriver.Chrome('c:\\chromedriver.exe')
    driver.implicitly_wait(3)

    url = 'https://www.jobkorea.co.kr/recruit/joblist?menucode=local&localorder=1'
    driver.get(url)
    driver.implicitly_wait(3)

    dropdown = Select(driver.find_element_by_xpath('//*[@id="orderTab"]'))  #정렬기준 드롭다운

    #case1 - 인덱스 기준으로 찾기
    dropdown.select_by_index(3)

    #case2 - 실제 텍스트 기준으로 찾기
    #dropdown.selec_by_visible_text("경력순")

    #case3 - <option value> 값으로 찾기
    #dropdown.select_by_value("5")

    driver.implicitly_wait(3)

    driver.find_element_by_xpath('//*[@id="lb_exceptWord"]').send_keys('인공지능')  #검색어 입력
    driver.implicitly_wait(3)

    driver.find_element_by_xpath('//*[@id="dev-gi-search"]').click()    #검색 버튼 클릭
    driver.implicitly_wait(3)

	#창 유지를 위한 무한 반복문
    while True :
        pass


if __name__ == "__main__":
    main()

 


 

위의 코드 중 "정렬 기준"을 정하는 드롭다운 박스를 xpath로 접근하여 select()함수로 선택합니다. (아래 코드 참조)

dropdown = Select(driver.find_element_by_xpath('//*[@id="orderTab"]'))  #정렬기준 드롭다운

 

이렇게 Select()함수로 select tag에 접근하여 반환된 값을 "dropdown" 변수에 입력합니다.

그 뒤, "dropdown" 변수 하위에서 호출할 수 있는 세 가지 함수로 select tag의 옵션(option)을 지정할 수 있습니다.

 

첫번째는 인덱스를 기준으로 찾는 "select_by_index()" 함수,

두번째는 옵션의 텍스트 값으로 찾는 "selec_by_visible_text()" 함수,

세번째는 옵션 태그에 지정된 value로 찾는 "select_by_value()" 함수 입니다.

 

위의 전체 코드를 보시면 case1, case2, case3로 구분하여 작성되어 있는 부분입니다.

각각의 함수는 아래 처럼 작성되어 있고, 세 함수 모두 같은 옵션 값을 선택하게 됩니다. ("경력순"을 선택)

    #case1 - 인덱스 기준으로 찾기
    dropdown.select_by_index(3)

    #case2 - 실제 텍스트 기준으로 찾기
    dropdown.selec_by_visible_text("경력순")

    #case3 - <option value> 값으로 찾기
    dropdown.select_by_value("5")

 

전체 코드에서는 옵션을 선택한 이후에 검색어 입력창에 "인공지능"을 입력하고, 검색 버튼을 누르는 기능까지 작성되어 있습니다.

 

전체 코드를 그대로 따라서 사용해보시고, 세부적은 xpath 값이나 옵션 선택값은 각자 타겟으로 하는 페이지에 맞게 수정하시면 될 거에요.

 

그럼 다음에도 여러분들께 도움되는 파이썬 셀레니움 크롤링 코드를 가지고 찾아뵙겠습니다.

감사합니다.

 

 

 

 

함께 읽으면 좋은 글

 

파이썬 크롤링 셀레니움 오류 ModuleNotFoundError: No module named 'selenium' 해결방법

 

파이썬 크롤링 셀레니움 오류 ModuleNotFoundError: No module named 'selenium' 해결방법

파이썬 셀레니움 모듈 No module named selenium 오류 파이썬 크롤링을 위해 셀레니움에 입문하시는 분들 계실텐데요. 크롤링 코드를 작성해서 시작해보기도 전에 오류에 당황하시는 분도 계실거예요.

msgoel.tistory.com

 

파이썬 크롤링 쿠팡 로그인 차단 접속 거부(Access Denied) 문제 해결 방법

 

파이썬 크롤링 쿠팡 로그인 차단 접속 거부(Access Denied) 문제 해결 방법

파이썬 셀레니움 쿠팡 로그인 안되는 문제 (Access Denied) 파이썬 셀레니움으로 쿠팡 크롤링하시는 분들 계실텐데요. 어느 날 갑자기 쿠팡 접속이 거부되는 일이 발생하기도 합니다. 로그인 페이지

msgoel.tistory.com

 

셀리니움 Selenium 크롬 실행 오류(selenium.common.exceptions.SessionNotCreatedException)

 

셀리니움 Selenium 크롬 실행 오류(selenium.common.exceptions.SessionNotCreatedException)

셀레니움 오류 Message: session not created: This version of ChromeDriver only supports Chrome version 파이썬으로 웹 크롤링을 위해서 크롬 드라이버 기반의 셀레이움 코드를 작성하면 다양한 오류가 발생합..

msgoel.tistory.com

 

https 차단 우회 PC버전/ https 차단 해제 프로그램 추천 'GoodbyeDPI'

 

https 차단 우회 PC버전/ https 차단 해제 프로그램 추천 'GoodbyeDPI'

https 차단 우회 / https 차단 해제 프로그램 'GoodbyeDPI' 2019년 2월 부로 시작된 한국정부의 https 와 SNI 관련 조치로 많은사이트가 차단이되었습니다. 그에 따른 차단된 사이트 우회접속 방법으로 러

msgoel.tistory.com

 

 

아이큐 테스트 - 짧고 정확한 온라인 국제 IQ 테스트(feat. 웩슬러기반)

 

가성비 노트북 추천 - 게임용 / 사무용(학생용)

 

핸드폰으로 팩스 보내기 - 무료 모바일팩스 사용방법

 

2022 넷플릭스 영화 추천 TOP7 - 현 시점 지구에서 가장 재밌는 영화 7편

 

넷플릭스 한국 영화 추천 TOP17 - 꿀잼 보장하는 2022~20년 사이에 개봉한 작품들

 

넷플릭스 애니 추천 2022 - 꼭 봐야 하는 명작 베스트 4

 

 

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기