Side project idea

네이버 부동산 크롤링

말랑까칠 2019. 12. 5. 16:52

2번째 사이드프로젝트를 끝마쳤다. 

"기억보다는 기록"이라는 어떤 유튜브 영상의 인터뷰 말처럼 기록이 중요하다고 생각한다. 

Github  : https://github.com/JeeheeMin/land_crawl

 

JeeheeMin/land_crawl

부동산크롤링, 매물정보 가져오기. Contribute to JeeheeMin/land_crawl development by creating an account on GitHub.

github.com

 

첫번째 naver_land 1123.ipynb를 보면 

그게 가장 메인이라고 할수 있다. (조만간 파일을 정리해야 하지만 어찌 하는지 모름..ㅠ)

네이버 부동산은 PC버전은 너무 복잡해서 모바일 버전으로 활용했다. 

네이버 부동산에서 매물 목록을 클릭하면 나오는 목록들을 뽑아내고 싶었다. 

 

네이버에서는 이 화면들을 JSON의 형태로 저장되어 있고 뿌려준다. 

이걸 사람이 하는것 처럼 생각하면 다음과 같다.

 

#1.  + JSON 을 가져오기 

우선 모든 법정동의 매물을 합치고 싶었다. 

여기서 문제가 되는 것이 법정동의 위도와 경도였는데, 결론부터 이야기하면 정확한 값을 입력하지 않아도 잘 읽힌다는 것. 

나는 인터넷에서 알게된 법정동 과 위도 경도의 엑셀 파일을 분석해서 평균을 사용했다. 

또 하나는 너무 빨리 하면 봇에게 걸려서 셧다운 되고 그러면 head 값을 바꿔줘야하니깐 

time.sleep(5)함수를 이용해서 7~12초까지 늘려주었다. 그랬더니 서울시만 모두 뽑는데 4시간 넘게 걸렸다. 

어차피 나는 연구용으로 나만 사용할거라 상관없으니 별 상관 없었지만 상당히 많이 걸리는것은 맞다. 

Github : naver_land 1123.ipynb 에서 코드를 참고 할 수 있다. 

 

 

#2. HTML 파싱

나는 상세페이지의 내용을 갖고 오고 싶었다. 거기서 특히 중요한 정보가 준공년월이었는데 이상하게도 메인 페이지에서는 준공년월은 없다. 지금 당장은 <준공년월>만 중요해 보이지만 실제 부동산 공부를 이어가면 그외에도 더 필요한 정보가 있을 것이다. 

이 경우는 html 을 beautiful soup를 이용해 parsing 했다. 

Nicalas의 nomad coder 강의를 적극 활용했다. https://academy.nomadcoders.co/courses/

 

Academy

Python으로 웹 스크래퍼 만들기 % Complete

academy.nomadcoders.co

이 것 중 python 으로 웹 스크레퍼 만들기다 

이분 너무 강의를 잘하셔서... 다른 것도 시간되면 찬찬히 공부해볼 생각이다. 스크래퍼, 크롤링 관련한 유튜브와 패스트 캠퍼스에서 열심히 들었으나 모두 실패하고

"도저히 내머리로는 안되~ 절레 절레" 하다가 오아시스처럼 발견한 꿀 강의. 

 

이렇게 상세페이지의 내용을 매물번호로 merge 했다. 

코드 공유 

https://github.com/JeeheeMin/land_crawl/blob/master/htmlparsing_1203.ipynb

 

JeeheeMin/land_crawl

부동산크롤링, 매물정보 가져오기. Contribute to JeeheeMin/land_crawl development by creating an account on GitHub.

github.com

 

 

덧. 

지금은 코드가 아마추어 티가 폴폴 날것이다. 

특히나... html parsing 후 준공년월 칼럼이 준공년월, 준공년월_x, 준공년월_y 이렇게 세개나 생겨서... 

좀 안예쁘다. 

이것에 대해서는 fiverr을 통해 python code review를 돈주고 맡겨볼 생각이다. 

아침에 검색하니 5달러? ~ 40달러이니 할만하다고 생각한다. 

 

컴알못,코딩 쌩초보가 그래도 이정도는 잘했지라고 약간 뿌듯해지는 날이다.