Selenium 과 PhantomJS에서 CSS3 Selector 이용하기

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

9. Selenium 과 PhantomJS에서 CSS3 Selector 이용하기

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()
포커 정복한 AI, 어디까지 진화할까
연습문제 (다음 코드 문제점 확인하고 수정하기)
아이디로 찾기
- 팁: 이전 시간에 설명한 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()
홈
사회
정치
경제
국제
문화
IT
랭킹
연재
포토
TV
1boon
스토리펀딩
서울
서울 23 ℃