코딩초보 김씨
[4] 네이버 호텔 크롤링 4 본문
개별 호텔의 URL에 들어가기 전에 여러 호텔의 정보를 크롤링하는 크롤러를 만들었다.
이번에는 각 호텔의 URL에 들어가서 정보를 긁어오는 크롤러를 만들 것이다.
항목 별 평점과 리뷰를 모으는 용도이다.
1. 전에 모았던 URL을 이용하여 글 띄우기
# excel 파일 가져오기
url_load = pd.read_excel("210512_hotel_list.xlsx")
# url 가져오기
# 지금은 개별 코드이므로 0 입력. 코드 합칠 땐 반복을 위해 0 대신 i 입력
url = url_load['url'][0]
# Chrome driver를 이용하여 url 열기
path = "chromedriver.exe"
driver = webdriver.Chrome(path)
driver.get(url)
2. 항목 별 평점 (총 6가지) 크롤링
# 항목 별 별점 - 1. 청결도
class_0 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_0 = class_0[0].text
# 항목 별 별점 - 2. 식사
class_1 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_1 = class_1[1].text
# 항목 별 별점 - 3. 시설
class_2 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_2 = class_2[2].text
# 항목 별 별점 - 4. 위치
class_3 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_3 = class_3[3].text
# 항목 별 별점 - 5. 객실
class_4 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_4 = class_4[4].text
# 항목 별 별점 - 6. 서비스
class_5 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_5 = class_5[5].text
또는
# 항목 별 별점 - 1. 청결도
class_0 = driver.find_elements_by_css_selector(".score.ng-binding")
rating_class_0 = class_0[0].text
# 항목 별 별점 - 2. 식사
rating_class_1 = class_0[1].text
# 항목 별 별점 - 3. 시설
rating_class_2 = class_0[2].text
# 항목 별 별점 - 4. 위치
rating_class_3 = class_0[3].text
# 항목 별 별점 - 5. 객실
rating_class_4 = class_0[4].text
# 항목 별 별점 - 6. 서비스
rating_class_5 = class_0[5].text
3. 리뷰 페이지 넘기면서 리뷰 크롤링
# 페이지 넘기면서 리뷰 크롤링
review_list = []
page = 4
for i in range(0, page):
# 리뷰 크롤링
review_raw = driver.find_elements_by_css_selector(".txt_comment.ng-binding")
for review in review_raw:
i = review.text
review_list.append(i)
time.sleep(1)
# 후기 페이지 넘기기
driver.find_element_by_css_selector('body > div > div > div.container.ng-scope > div.content > div.hotel_used_review.ng-isolate-scope > div.review_bk.ng-scope > div.paginate > a.direction.next').click()
+ 2021.05.13 수정
어제 집에서 작성한 코드를 학원에서 돌려보니 자꾸 오류가 나서 css_selector의 class 부분을 수정했다.
# 페이지 넘기면서 리뷰 크롤링
review_list = []
page = 4
for i in range(0, page):
# 리뷰 크롤링
review_raw = driver.find_elements_by_css_selector(".good_bad")
for review in review_raw:
i = review.text
review_list.append(i)
time.sleep(1)
# 후기 페이지 넘기기
driver.find_element_by_css_selector('body > div > div > div.container.ng-scope > div.content > div.hotel_used_review.ng-isolate-scope > div.review_bk.ng-scope > div.paginate > a.direction.next').click()
오늘 포기하지 않고 계속 시도해서 혼자 힘으로 개별 코드 짜기 성공했다!
성공하고 정말 학원에서 소리지를 뻔 했다 ㅋㅋㅋ
그런데 개별 코드를 작성하고 합치려고 하는데 자꾸 오류가 난다..
코드 합치는건 내일 선생님한테 봐달라고 해야겠다!
'김초보의 프로젝트 > 네이버호텔 추천시스템' 카테고리의 다른 글
[6] 네이버 호텔 - 워드 클라우드 만들기 (0) | 2021.05.20 |
---|---|
[5] 네이버 호텔 크롤링 5 (0) | 2021.05.13 |
[3] 네이버 호텔 크롤링 3 (0) | 2021.05.12 |
[2] 네이버 호텔 크롤링 2 (0) | 2021.05.11 |
[1] 네이버 호텔 크롤링 (1) | 2021.05.10 |
Comments