XPATH 이용하기
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
10. XPATH를 이용하여 크롤링하기¶
- 마크업에서 요소를 정의하기 위해 path 경로를 사용하는 방법
- find_element_by_xpath(), find_elements_by_xpath() 메서드로 검색 가능
- XPATH 문법 상세 참고
- / : 절대경로를 나타냄
- // : 문서내에서 검색
- //@href : href 속성이 있는 모든 태그 선택
- //a[@href='http://google.com'] : a 태그의 href 속성에 http://google.com 속성값을 가진 모든 태그 선택
- (//a)[3] : 문서의 세 번째 링크 선택
- (//table)[last()] : 문서의 마지막 테이블 선택
- (//a)[position() < 3] : 문서의 처음 두 링크 선택
- //table/tr/* 모든 테이블에서 모든 자식 tr 태그 선택
- //div[@*] 속성이 하나라도 있는 div 태그 선택
In [9]:
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/20170922175202762')
title = driver.find_element_by_xpath("//title") # 문서내의 어떤 태그든지 가능
# head 태그 안에 있는 title 정보는 get_attribute('text') 메서드로 추출할 수 있습니다.
print (title.get_attribute('text'))
driver.quit()
In [62]:
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/20170922182449443')
title = driver.find_element_by_xpath("/html/head/title") # 절대경로
# head 태그 안에 있는 title 정보는 get_attribute('text') 메서드로 추출할 수 있습니다.
print (title.get_attribute('text'))
driver.quit()
In [70]:
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/20170202185812986')
title = driver.find_element_by_xpath("/html//title") # html 태그 내에서 다시 검색
# head 태그 안에 있는 title 정보는 get_attribute('text') 메서드로 추출할 수 있습니다.
print (title.get_attribute('text'))
driver.quit()
- 속성으로 검색하는 XPATH 문법: 태그[@속성=속성값]
본 자료 보다 업데이트된 자료와 함께 온라인 강의로 익히면 체계적으로 이해할 수 있습니다!
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요
In [71]:
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/20170202185812986')
#soup.find('h3', attrs = {'class' : 'tit_s'})
title_content = driver.find_element_by_xpath("//h3[@class='tit_view']")
# body 안에 있는 태그 요소는 .text 로 추출할 수 있습니다. (출력이 잘 안되면, 둘다 써보셔도 좋습니다.)
print (title_content.text)
driver.quit()
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')
body = driver.find_element_by_xpath("//div[@id='harmonyContainer']")
for p in body.find_elements_by_tag_name('p'):
print (p.text)
driver.quit()
연습문제
[김익현의 미디어 읽기] '마이너리티 리포트'와 AI
를 XPATH로 크롤링해서 출력하세요
http://v.media.daum.net/v/20170202180355822 페이지에서
[김익현의 미디어 읽기] '마이너리티 리포트'와 AI
를 XPATH로 크롤링해서 출력하세요