Selenium?
웹 브라우져를 컨트롤하여 웹 UI를 Automation 하는 도구 중의 하나입니다.
Selenium의 두 종류가 있습니다.
Selenium Server와 Selenium Client가 있습니다.
Selenium Client은 로컬 컴퓨터의 웹 브라우져를 컨트롤 하기 위해서 Selenium Client를 사용합니다.
Selenium Client는 WebDriver라는 공통 인터페이스(Common interface)와 각 브라우저 타입별(Chorme, exploer, 사파리 등)로 하나씩 있는 Browser Driver로 구성되어 잇습니다.
Selenium을 설치하겠습니다.
설치를 위해서 윈도우 + R을 눌러 cmd을 쳐 주시기 바랍니다.
admin> pip install selenium
만약 오류가 뜨게 된다면 환경변수를 설정 안 하셧거나 등의 문제입니다. 그럴 때는 파이썬이 깔려 있는 곳에 디렉터리를 가서 pip install selenium을 쳐 주시기 바랍니다.
다음으로 Selenium 드라이버를 설치했다면 해당 드라이버의 경로를 실행 PATH에 넣어줘야 합니다. 저는 Chrome을 사용하겠습니다.
Firefox : https://github.com/mozilla/geckodriver/releases
Chrome : https://sites.google.com/a/chromium.org/chromedriver/downloads
1번 -> 설정 -> Chrome 정보
Chrome : https://sites.google.com/a/chromium.org/chromedriver/downloads
다시 들어간 뒤 저는 80. 버전이니 80버전 으로 다운 받겠습니다.
다운 받은 뒤 압축을 풀어줍니다. 다운로드 폴더에서 실행시키지 말고 다른 곳에서 실행시키기 바랍니다.
저는 Users/ admin에서 실행시키겠습니다.
Selenium 사용법
결과
webdriver가 실행되면서 홈페이지가 켜지게 됩니다.
그 페이지가 안 뜰 수 있는데 클릭 한 번 하면 naver.com로 넘어갑니다.
Selenium의 특정 요소 및 메서드에 대해서 설명드리겠습니다.
Selenium은 웹페이지 내의 특정 요소를 찾는 많은 메서드를 제공하고 있습니다.
보통 한 요소를 리턴하는 find_element_*(), 복수 요소를 리턴하는 find_elements_*() 메서드로 구분됩니다.
예를 들어서 특정태그 id로 검색하는 find_element_by_id(), 특정 태그 name로 검색하는 find_element_by_name(), Css클래스명으로 검색했을 때는 find_element_by_class_name() 등이 있습니다.
만약 예상되는 결과가 복수이면 find_element_* 대신 find_elements_*를 사용합니다.
왼쪽에 있는 Python, PSF, DOCS, PYPI, Jobs, Community를 출력해보겠습니다.
오른쪽은 ctrl + shift + i 를 눌르면 보입니다.
소스코드는 다음과 같습니다.
from selenium import webdriver
import time
driver = webdriver.Chrome('C:\\Users\\admin\\chromedriver.exe')
# webriver.Chrome()를 호출하여 브라우저를 실행시킵니다.
driver.get("http://python.org")
# 브라우저를 띄운 상태에서 특정 웹사이트로 이동하기 위해서 get()메서드를 사용
menus = driver.find_elements_by_css_selector("#top ul.menu li")
#div의 top 에 ul class = "menu에서 li을 menus에 넣어라,
pypi = None
for m in menus:
if m.text =="PyPI":
pypi = m
print(m.text)
pypi.click() # 클릭
time.sleep(5) #5초 대기
browser.quit() #브라우저 종료
결과
이상포스터를 마치겠습니다.
'파이썬' 카테고리의 다른 글
네이버 네비게이션 바 파싱하기 (0) | 2020.03.27 |
---|---|
쓰레드(Thread) , 쓰레딩(threading) 모듈 (0) | 2020.03.26 |
크롤링 하기5 - 네이버에서 특정 글자 추출 및 네이버 파싱 (0) | 2020.03.25 |
크롤링 하기4 - beautifulsoup 사용 방법 (0) | 2020.03.22 |
크롤링 하기3 - 뷰티풀솝 사용 및 설치 (0) | 2020.03.22 |