[Python] 나도코딩 웹 스크래핑편 - (11) 셀레니움

Updated:

유튜브 나도코딩 웹 스크래핑 무료 강의를 통해 학습한 내용을 정리해서 올리고 있습니다.

실습과정에서 필요에 따라 일부 강의 내용의 누락 및 추가, 수정사항이 있습니다.

퀴즈의 경우, 유튜브 풀이와 상이할 수 있습니다.


셀레니움

그동안 페이지의 url을 직접 입력한후 request, BeautifulSoup을 이용해 웹 정보를 불러왔다.

셀레니움은 명령어를 지정하면 해당 명령대로 웹을 클릭하고 검색하는 등의 기능을 가지고 있다.

셀레니움을 실행하기 위해선 크롬버전에 맞는 크롬 드라이버가 꼭 필요하다(크롬을 쓰는 경우).

from selenium import webdriver
from selenium.webdriver.common.keys import Keys # 검색 모듈

# 크롬버전에 맞는 크롬 드라이버가 반드시 존재해야함
browser = webdriver.Chrome("./chromedriver.exe")
browser.get("http://naver.com")
  • 크롬 드라이버가 실행되면 get() 함수를 이용해 특정 url에 접속 가능하다.

  • 나의 경우 네이버 url을 지정해서 명령어를 실행하면 네이버가 켜진다.

# 네이버 검색 버튼 지정
elem = browser.find_element_by_id("query")

# 키워드 입력
elem.send_keys("나도코딩")

# 엔터 누르기
elem.send_keys(Keys.ENTER)

# elements 모든 a tag 정보 가져옴
elem = browser.find_elements_by_tag_name("a")

# for e in elem:
#     e.get_attribute("href")

여기선 네이버 검색 버튼 클릭 후 나도코딩 키워드를 입력하여 엔터를 누르는 명령어를 사용하였다.

이외에도 많은 명령어가 있다.

  • elem.click(): 클릭

  • browser.back(): 뒤로 가기

  • browser.forward(): 앞으로 가기

  • browser.refresh(): 새로고침

find_element_by_id 등 element를 찾는 많은 명령어가 있어 원하는 형태로 웹에서 확인하고 지정하면 된다.

# 다음으로 전환
browser.get("http://daum.net")

# 다음 검색 버튼 지정
elem = browser.find_element_by_id("q")

# 키워드 입력
elem.send_keys("나도코딩")

# xpath 이용 클릭 - 검색 돋보기의 xpath 복사
elem = browser.find_element_by_xpath("//*[@id='daumSearch']/fieldset/div/div/button[2]")
elem.click()

browser.close() # 현재 탭만 닫기
browser.quit() # 모든 탭 닫기

다음을 실행해서 검색 버튼 클릭 후 나도코딩 키워드를 입력하였다.

앞서 엔터를 누른 것과 달리 이번엔 검색 돋보기 모양을 xpath로 찾아 클릭하였다.

마지막으로 close(), quit()을 이용해 현재 탭, 모든 탭을 닫는 명령어로 종료하였다.

Leave a comment