개발자
구글맵 한국에서 평점이 가장 많이 달린 곳 1~100곳을 리스팅하라는 미션을 받았는데요.. 혹시 크롤링으로 하면 될까요? 어떻게 하면 좋을지 방향만 알려주시면 열심히 시도해보려고합니다 아예 방법을 모르겠어서요..ㅠㅠ 형님들 꼭 좀 조언 부탁드립니다.. 나중에는 지역을 정해 서울시에서 가장 많은 평점이 달린 곳을 리스팅하고 더 나아가 시간대를 추가해 이번 달에 평점이 가장 많이 달린 곳 리스팅 하는 것이 목표입니다. 만약 외주를 맡긴다면 어느 곳에 맡기는 것이 좋을까요? 감사합니다 형님들.. 오늘도 좋은 하루 되세요!
답변 1
인기 답변
제가 틀릴 수도 있습니다만 노파심에 적습니다. 그런 미션을 준 주체가 누구인지 모르겠으나, 응하지 않는 것이 좋겠습니다. 일단 구하기 힘든 것이 가장 큰 문제입니다. 구글에서 데이터를 가져가기 좋게 공개해 놓았을리 없고, 크롤링을 하더라도, 크롤링 대처로 막아놨을 게 뻔합니다. 구글 입장에서는 자사의 데이터이고 자산입니다. 일반 고객이 구글이 "원하는 형태"의 소비활용이 아니라, 크롤링으로 데이터를 가져가는 행위를 옳다구나 방치할리 없죠. 작은 회사라면, 데이터를 (이용자 약관 동의하에) 판매하기도 합니다만, 구글이 뭐가 아쉬워서 데이터를 팔겠습니까. 심하게 비유하자면, 님에게, 저 회사에 들어가서 데이터 훔쳐오라는 미션을 준 것과 마찬가지입니다. 그 정도까지로 범법행위인 것은 아니지만, 얼추 비슷합니다. 해당 미션을 준 사람으로부터 얼릉 돔황치십셔. 아마 그냥 잘 모르는 사람이었을 겁니다. 나쁜 의도는 아니었을 거예요. 잘 모르고 악의가 없다고 하더라도 결과적으로 옳지 않은 일에 휘말리면 곤란하겠습니다. ---------- 이 모든 말씀이 틀릴 가능성은.... 아래 구글 Places API 중에 결과로 얻을 수 있는 값 중에, 님이 원하는 데이터가 들어있는 경우입니다. https://developers.google.com/maps/documentation/places/web-service/op-overview?hl=ko API 이용료를 내고 사용하는 것은 구글이 허용한 정당한 이용이 되겠죠. 별도 이용약관이 있을 거고, 해당 약관에 위배되지 않는 한 문제가 없을 거예요. 다만, 딱 랭킹 순서대로 돌려주는 API가 없을 수도 있기 때문에, 서울시내 모든 데이터를 받아 와서 정렬해야 할텐데, 그럴려면 API 사용량(과금)이 적잖이 나올 수도 있겠습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 16일
네, 가능합니다. 구글 맵 레스토랑 리뷰 수집 같은 경우에는 Google Places API 혹은 Selenium 등을 이용한 웹 크롤링을 통해 데이터를 수집할 수 있습니다. 1. Google Places API: 구글의 Places API를 사용하면 특정 지역의 레스토랑 정보와 리뷰 수, 평점 등 다양한 정보를 얻을 수 있습니다. 하지만 이 방식에는 사용량 제한과 비용이 따르므로 대량의 데이터를 필요로 하는 경우에는 비효율적일 수 있습니다. 2. Selenium: 웹 사이트를 자동으로 돌아다니며 필요한 정보를 가져오는 크롤링 툴입니다. Google Maps와 같이 Javascript로 만들어진 사이트에서도 잘 동작합니다. 아래는 간단한 코드 예시입니다: ```python from selenium import webdriver driver = webdriver.Chrome('/path/to/chromedriver') # Add your path driver.get('https://www.google.com/maps') search_box = driver.find_element_by_css_selector('input#searchboxinput') search_button = driver.find_element_by_css_selector('button#searchbox-searchbutton') search_box.send_keys("Restaurants in Seoul") search_button.click() ``` 위 코드 실행 후 페이지가 완전히 로딩된 후에 각 리스트의 엘리먼트 정보를 가져오게 됩니다. 하지만 이런 방식은 권리침해가 될 수 있으니, 반드시 해당 사이트의 이용약관을 확인하고 사용에 주의해야 합니다. 또한, 구글맵 같은 경우는 자주 바뀌므로 실제 구현시에는 적절히 수정해서 사용해야 할 것입니다. 크롤링 초보라면 BeautifulSoup를 이용해 시작하는 것도 좋습니다. 이동성이 필요 없고 단순 정보 추출이 목적이라면 더 간편하기 때문입니다. 그러나 Google Maps와 같은 동적 페이지는 Selenium 등으로 접근하는게 더 낫습니다. 추가로 크롤링 시에는 웹사이트 서버 부하 문제도 고려하여 동시 요청수를 적절하게 조절하는 등의 에티켓을 지켜주시길 바랍니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!