세조목

최종 프로젝트 5일차(24.03.31) 본문

데이터 분석 공부/프로젝트

최종 프로젝트 5일차(24.03.31)

세조목 2024. 3. 31. 20:43

금주 금요일에 네이버 지도 크롤링 코드를 작성하고 결과값이 출력되는 것까지 확인했습니다.

2024.03.29 - [데이터 분석 공부/프로젝트] - 최종 프로젝트 4일차(24.03.29)

하지만

  1. '더보기'를 클릭했을때 '거리뷰'가 함께 클릭되는 오류와
  2. 한 가게에 대해 작성된 리뷰들이 하나의 리스트에 들어가서 출력되는 문제

를 해결하지 못했었는데

금일 2번은 일단 해결했습니다.

크롤링 결과물

review_box = []
review_nums = driver.find_elements(By.CLASS_NAME,'owAeM')
for review_num in review_nums:
	review_content = review_num.find_element(By.CLASS_NAME,'zPfVt').text
	review_box.append(review_content)

기존에는 이런식으로 추출한 리뷰들을 review_box라는 이름의 리스트에 모두 넣고,

그 리스트를 review컬럼에다 집어넣는 식으로 코드를 작성하다보니

하나의 컬럼에 모든 리뷰가 들어있는 형태로 출력이 됐는데

 

review_nums = driver.find_elements(By.CLASS_NAME,'owAeM')
for review_num in review_nums:
	review_writer = review_num.find_element(By.CLASS_NAME, 'RKXdJ').find_element(By.XPATH, './/a[2]/div[1]/span').text
	review_content = review_num.find_element(By.CLASS_NAME,'zPfVt').text
	review_date = review_num.find_element(By.CLASS_NAME, 'D40bm').find_element(By.XPATH, './/span[1]/time').text
	visit_num = review_num.find_element(By.CLASS_NAME, 'D40bm').find_element(By.XPATH, '//*[@id="app-root"]/div/div/div/div[6]/div[3]/div[3]/div[1]/ul/li/div/div[6]/div[2]/span[2]').text
	visit_num = visit_num[0]

	store_name_list.append(store_name)
	visited_review_list.append(visited_review)
	blog_review_list.append(blog_review)
	review_list.append(review_content)
	review_writer_list.append(review_writer)
	review_date_list.append(review_date)
	visit_num_list.append(visit_num)
	rating_list.append(rating)

위와 같이 코드를 작성하니 각각의 리뷰를 한 행씩 입력해나갈 수 있었습니다.

 

이렇게 2번 문제는 해결했으나 1번 문제는 아무리 생각해도 가닥이 잡히지 않았습니다.

그래서 1번 문제는 내일 튜터님께 해결 방법을 여쭤보려고합니다.