티스토리 뷰

728x90
반응형

 

 

이번에는 Selenium으로 네이버 검색 결과를 가져오는 걸 해보려고 해요!

 

시나리오는 아래와 같아요!

1. 네이버 메인 페이지에 접속한다.

2. 검색창에 "돔돔이블로그"라고 입력한다.

3. 검색 버튼을 누른다.

4. 검색 결과 중 최상위 검색 결과의 링크주소만 가져온다.

 

1. 네이버 메인 페이지에 접속한다.

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://naver.com')

 

2. 검색창에 "돔돔이블로그"라고 입력한다.

elem = browser.find_element_by_id('query')
elem.send_keys('돔돔이블로그')

 

3. 검색 버튼을 누른다.

elem = browser.find_element_by_class_name('btn_submit')
elem.click()

 

4. 검색 결과 중 최상위 검색 결과의 링크주소만 가져온다.

elem = browser.find_elements_by_css_selector('section.sp_ntotal a.link_tit')
for e in elem:
	linkText = e.get_property('textContent')
	linkUrl = e.get_attribute('href')
	print(f'제목 : {linkText}')
	print(f'링크 : {linkUrl}')

위 코드의 실행 결과는 아래와 같아요!

제목 :  돔돔이블로그 | DomDom's Blog 
링크 : https://domdom.tistory.com/
제목 :  돔돔이의 하루 
링크 : https://blog.naver.com/kkww523
제목 :  돔돔이블로그 | DomDom's Blog (31 Page) 
링크 : https://domdom.tistory.com/?page=31
제목 :  [가평] 남이섬 다녀온 후기! - 돔돔이블로그 
링크 : https://domdom.tistory.com/56
제목 :  2018년 육아수당! 돔돔이 알려드립니다~ 
링크 : https://blog.naver.com/mydomdom/221254980508

정확히 아래 부분을 가져온 것이죠.

 

짠, 이렇게 위에서 말한 네이버 검색 결과 링크 가져오기 시나리오를 수행해보았어요!

 

지금까지 사용한 Selenium 문법만 정리해보자면 아래와 같아요!

from selenium import webdriver

browser = webdriver.Chrome() # 현재파일과 동일한 경로일 경우 생략 가능
browser.get('http://naver.com') # 네이버 사이트로 이동한다.

elem = browser.find_element_by_id('query') # 검색어 입력창을 가져온다.
elem.send_keys('돔돔이블로그') # 검색어 입력창에 '돔돔이블로그'라고 입력한다.

elem = browser.find_element_by_class_name('btn_submit') # 검색 버튼을 가져온다.
elem.click() # 검색 버튼을 클릭한다.

# CSS Selector 로 section.sp_ntotal a.link_tit에 해당하는 요소를 list형태로 가져온다.
elem = browser.find_elements_by_css_selector('section.sp_ntotal a.link_tit')
for e in elem:
	linkText = e.get_property('textContent') # 한 요소의 text 전체를 가져온다.
	linkUrl = e.get_attribute('href') # 속성 중 href 에 해당하는 값을 가져온다.
	print(f'제목 : {linkText}')
	print(f'링크 : {linkUrl}')

 

- 끝 -

728x90
반응형
댓글