Python 웹 스크래핑

Python으로 웹에 있는 자료들을 스크래핑 하는 방법을 알아봅니다.


수강중

18. 셀레늄 실습: 트립어드바이저

셀레늄으로 트립어드바이저의 리뷰를 크롤링한다.

url 변수에 크롤링 대상이 되는 웹페이지 주소를 저장한다.

url = 'https://www.tripadvisor.co.kr/Restaurant_Review-g294197-d1371740-Reviews-Mugyodong_Bugeokukjib-Seoul.html'

셀레늄으로 웹 브라우저를 띄우고 주소로 이동한다.

from selenium.webdriver import Chrome

browser = Chrome()
browser.get(url)

'더보기' 링크 찾기

find_elements_by_css_selector로 '더보기' 버튼에 해당하는 링크를 찾는다.

여기서 매우 비슷한 이름의 메소드가 2개 있다. find_element_by_css_selectorfind_elements_by_css_selector이다. 전자는 선택자와 일치하는 첫번째 요소를 발견한다. 후자는 모든 요소를 발견한다.

아래와 같이 더보기 버튼에 해당하는 모든 링크를 찾는다.

more_links = browser.find_elements_by_css_selector('.taLnk.ulBlueLinks')

클릭

.click 메소드로 요소를 클릭할 수 있다.

more_links[0].click()

리뷰 텍스트 수집

리뷰 텍스트 요소를 선택한다.

reviews = browser.find_elements_by_css_selector('.partial_entry')

.text로 리뷰 텍스트를 확인합니다. 이는 lxml.html.text_content()와 동일합니다.

for review in reviews:
    print(review.text)
사골곰탕 같은 하얀 국물에 북어가 푸짐하게 들어 있네요.

맛집으로 식사시간 때 항상 사람이 줄 서 있습니다. 서비스도 괜찮은데 식사시간 때는 피해야 할 것 같습니다.
사람이 너무 많기 때문에 편하게 먹기는 불편하다 간단하게 식사하고 싶을때 찾으면 될듯 너무 큰 기대는 하지 않음이 좋겠다
서울의 중심가에 위치한 오래되고 전통적인 식당으로서 숙취 해소 및 겨울철에 얼은 몸을 녹여주는 진한 북어의 사골국과 같은 탕으로 최고지요^^