Selenium 과 PhantomJS에서 CSS3 Selector 이용하기
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
9. Selenium 과 PhantomJS에서 CSS3 Selector 이용하기¶
- docs : http://saucelabs.com/resources/articles/selenium-tips-css-selectors
- 아이디의 경우 앞에 #
- 클래스의 경우 앞에 .
- 하위 태그는 >
9.1 클래스로 찾기 예¶
In [22]:
from selenium import webdriver
# driver = webdriver.PhantomJS('C:/dev_python/phantomjs-2.1.1-windows/bin/phantomjs.exe') # 윈도우
driver = webdriver.PhantomJS('/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs') # 맥
driver.get('http://v.media.daum.net/v/20170202180355822')
# 클래스가 tit_view인 h3태그
title = driver.find_element_by_css_selector("h3.tit_view")
print (title.text)
driver.quit()
연습문제 (다음 코드 문제점 확인하고 수정하기)
아이디로 찾기
- 팁: 이전 시간에 설명한 CSS Selector 내용 상기
1. 에러 메세지를 읽고, 어떤 라인에서 문제가 있는지를 확인한 후
2. 해당 라인의 코드에 어떤 문제가 있는지를 CSS Selector 문법과 해당 웹페이지 소스를 비교해가며 확인
아이디로 찾기
- 팁: 이전 시간에 설명한 CSS Selector 내용 상기
1. 에러 메세지를 읽고, 어떤 라인에서 문제가 있는지를 확인한 후
2. 해당 라인의 코드에 어떤 문제가 있는지를 CSS Selector 문법과 해당 웹페이지 소스를 비교해가며 확인
In [ ]:
from selenium import webdriver
driver = webdriver.PhantomJS('C:/dev_python/phantomjs-2.1.1-windows/bin/phantomjs.exe') # 윈도우
# driver = webdriver.PhantomJS('/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs') # 맥
driver.get('http://v.media.daum.net/v/20170202180355822')
title_data = driver.find_element_by_css_selector('html head title')
print(title_data.get_attribute('text'))
title_data = driver.find_element_by_css_selector('html > title')
# head 태그 안에 있는 title 정보는 get_attribute('text') 메서드로 추출할 수 있습니다.
print(title_data.get_attribute('text'))
contents = driver.find_element_by_css_selector("div#harmonyContainer")
# body 안에 있는 태그 요소는 .text 로 추출할 수 있습니다. (출력이 잘 안되면, 둘다 써보셔도 좋습니다.)
print(contents.text)
for p in contents.find_elements_by_tag_name('p'):
print (p.text)
driver.quit()
- 속성으로 찾기
본 자료 보다 업데이트된 자료와 함께 온라인 강의로 익히면 체계적으로 이해할 수 있습니다!
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요
In [25]:
from selenium import webdriver
# driver = webdriver.PhantomJS('C:/dev_python/phantomjs-2.1.1-windows/bin/phantomjs.exe') # 윈도우
driver = webdriver.PhantomJS('/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs') # 맥
driver.get('http://v.media.daum.net/v/20170202180355822')
# role attribute가 navigation인 div태그
nav = driver.find_element_by_css_selector("div[role='navigation']")
print(nav.text)
driver.quit()