[2023.04.05][개발일지][미니프로젝트][DAY3] 웹스크래핑 (ft. bs4, selenium) , 현재위치(ft. geolocation api & geopy/geocoders)

Pyotato·2023년 4월 9일
0
post-thumbnail

🏃‍진행

  • 로그인페이지, 회원가입페이지, 에러페이지 등 기본적인 틀은 완성. 식당 리스트 페이지와 식당 상세 정보 페이지 웹퍼블리싱도 마저 할려고 했는데 팀원이 지도 크롤링이 안된다고 해서 대신 보기로 했다.

  • kakao 지도 api 도입하기 위해 Key도 받고 설정까지 맞추려다가 공식문서를 읽다가 반갑지 않은 소식을 몇가지 발견했다.

    • 지도 api를 사용하기 위해서는 https환경이여야하는데 우리가 배포하는 aws ec2는 http이다. https로 배포를 하는 건 시간관계상 불가능.. 게다가 aws로 한다고 한들, aws 자체에서 제공하는 지도 서비스가 아니면 안된다고 함.
    • 데이터 가져올 곳 변경해야함! 👉 지도를 크롤링
  • 굴을 파도 이렇게 굴을 팔 수가 있나😭😭😭😭

    • 네이버 지도가 크롤링이 안된다.. 구글로 할까? 했는데도 안된다. bs4으로 js까지 긁어왔는데, 크롤링된 태그들이 비어있다! 생각해보니까..
    • 모두 유료로 서비스를 제공하는 지도api가 있는데..당연히 막아놨겠지😓
  • 대신 자바스크립트와 파이썬 각각에 내장된 지도관련 api로 현재 위치를 찾고, 현재 위치에 해당되는 맛집들이 있는 사이트를 웹스크래핑하기로 했다.

  • 웹스크래핑할 사이트 : mangoplate

    • 커스텀 태그(ng-로 시작)가 있어서 어떻게 웹스크래핑 해올까 해보니, ngCloack와 관련된 거였고, 결국 angular.js를 사용해서 만든 사이트라는 걸 알게되었다. 정적으로 html을 랜더링하며 정보를 보여주는 대신 csr인 거 같아서, Selenium을 사용해서 버튼 클릭 이벤트 등을 하고 나오는 화면을 스크래핑할 수 있도록 시도했다.
    • 웹스크래핑 & db에 넣기 성공!
    • db는 조회가 많을 데이터를 고려해서 분리하기로 했다.
    • 웹스크래핑해왔던 사이트에는 다행히도 지역(도,시) 행정구역 정보와 주소가 나와 있어서, 도 단위로 콜렉션을 분리했다. 시흥시는 왜 없지?

📋 TILs


✍️한줄 소감

  • 밤샘🥱근데 더 속도를 내지 못해서 아쉬운 게 더 크다.

profile
https://pyotato-dev.tistory.com/ 로 이사중 🚚💨🚛💨🚚💨

0개의 댓글