[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