인프런 커뮤니티 질문&답변

Been님의 프로필 이미지
Been

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

수정된 직방 크롤링 코드 관련 질문있습니다.

작성

·

227

1

안녕하세요. 조용히 강의만 듣다가 처음으로 질문을 남겨봅니다. 매번 얻어가는 내용이 많아서 언제나 감사한 마음 뿐입니다.

다른 분이 관련해서 질문을 남기셔서, Geohash 사용된 수정해주신 코드는 잘봤습니다.
(https://www.inflearn.com/questions/22997)

코드에서 궁금한 점이 생겨 질문 남깁니다.

수업에서 말씀해주신 것처럼,
웹사이트 구조라는게 워낙 경우가 다양해서,
코드 짜는것 이상으로 웹사이트 분석해보는 일도 나름 열심히 연습해보고있는데요,
작성해주신 코드에서,

    # 위에서 구한 geohash 값을 아래의 api 로 호출하고 쿼리(전세 월세 등)를 넘겨주는 주소 입니다.
    url = "https://apis.zigbang.com/v2/items?deposit_gteq=0&domain=zigbang&geohash={}&rent_gteq=0&sales_type_in=전세%7C월세&service_type_eq=원룸".format(geohash)

위 주소를 구하려면 직방의 어디서 어떤 식으로 접근해야 하는지 궁금합니다.
직방에서 크롬 개발자모드 열고 여기저기 찾아봤는데도 제 수준에선 알아내는게 어렵네요.

결국 사이트 작동구조를 파악하려면 사이트 소스들을 보고 추론해야 하는 수밖에 없는 듯 한데
작성해주신 코드를 보고 있자면 이런 작동방식을 어떻게 알아내셨는지 정말 감탄만 나오는 한편,
아직 갈 길이 멀게만 느껴지기도 하네요. 

사이트 분석에 요령같은 게 있는지도 궁금합니다.

답변 부탁드려요.

답변 3

1

남박사님의 프로필 이미지
남박사
지식공유자

제가 해당 코드를 분석한 순서를 서술해보자면....

먼저 코드가 변경되었다는 사실을 알고 개발자모드로 사이트를 분석해보았습니다. 기존의 api 주소랑 다른 주소의 api 호출이 되는걸 확인했는데 문제는 기존의 api 호출시 넘겨주던 파라메타가 넘어가지 않고 처음보는 5글자의 문자열이 넘어가는 주소가 보이는걸 확인했습니다. 저는 사전에 Geohash 에 대한 데이터가 없던터라 그게 뭔지 아예 몰랐었습니다. ㅎㅎ

그래서 직방사이트에서 호출되는 페이지의 소스(html 및 자바스크립트) 를 보니 몇몇 js 파일에서 geohash 라는 단어를 볼 수 있었고 해당 내용을 검색해보고 geohash 에 대한 내용을 이해하였고 자바스크립트 파일들을 분석해보며 어떤 api 주소를 사용하는지 알 수 있었습니다. (해당 api 주소들은 크롬개발자모드에서 노출이 되지 않습니다.)

저는 자바스크립트 전문가는 아니라서 100% 코드를 이해할수는 없지만 그래도 대략적으로 추측은 할 수 있습니다. 그렇게 지도 4모서리의 좌표를 사용하던 기존 방식에서 geohash가 어떤 역할을 하게 되는지도 이해했고 api 주소에 geohash 값을 넘겨주어서 데이터를 얻어올 수 있었습니다.

어떻게 다양한 사이트들을 분석하고 동작원리를 알아내는지는 정말 경험밖에 없다고 생각합니다. 경험에는 다른 여러 사이트들을 분석해보는 경험도 있겠지만 웹사이트를 많이 만들어보는것도 정말 큰 도움이 됩니다. 사이트를 분석할때 크롤링하는 입장이 아닌 만든 사람 입장에서 생각해보면 쉽게 이해되는 부분도 많이 있기 때문입니다.

크롤링을 해서 해당 데이터로 나만의 사이트를 만들어보시는걸 추천합니다. 누군가에게 보여지는 사이트라기보단 나 혼자 보고 만족하고 공부하는 그런 사이트를 많이 만들어보시면 웹사이트 만드는 기술, 크롤링 하는 기술, 분석하는 기술이 모두 업그레이드 되지 않을까 생각해봅니다. ^^;;

뻔한 대답이긴 하지만 그대로 도움되셨으면 좋겠습니다.

0

남박사님의 프로필 이미지
남박사
지식공유자

인생이 좋은방향으로 가는데 제가 작은 도움이라도 되었다는 말씀에 너무 큰 보람을 느끼게되며 그 이상의 책임감도 느껴지네요 ^^

궁금하신 사항은 언제든 질문주시면 최선을 다하도록 하겠습니다. 좋은말씀 감사합니다.

0

Been님의 프로필 이미지
Been
질문자

정말 감사합니다. 안그래도 선생님 강의 중에 웹사이트만들기 강의가 있어서 들어보려고 했는데 사이트 만들기도 이번 기회에 도전해봐야겠네요. 숙련자 분 입장에서의 뻔한 대답도 맨땅에 헤딩 중인 코알못들에게는 정말 큰 힘이 됩니다. 코딩을 알고 이걸로 제 인생을 바꾸어보고자 마음먹었는데, 선생님의 좋은 강의를 통해 정말 제 인생이 좋은 방향으로 나아가는 듯 합니다. 항상 감사드립니다.

Been님의 프로필 이미지
Been

작성한 질문수

질문하기