Crawling #2 : API


In [1]:
# 만약에 어떠한 이유(?)로 인증이 필요없이 정보를 가져올 수 있는 API를 발견하실 수 있으면,
# 가장 쉽게 외부 플랫폼으로 부터 정보를 가져오실 수 있습니다.

# => "하지만, 원래 크롤링은 하시면 안됩니다."

In [2]:
import json

import pandas as pd

import requests

In [3]:
# 인증 과정이 별도로 필요없는 ( 실제 서비스 개발 시에는 이렇게 개발하시면 안됩니다. )
# 직방 API v1 을 통해서, 직방의 매물 정보 데이터 ( 위치, 가격, 연락처 등 ) 를 크롤링(X), 그냥 가져옵(O)니다.

response = requests.get("https://api.zigbang.com/v1/items?detail=true&item_ids=3430448&item_ids=3367854&item_ids=3288446&item_ids=3467204&item_ids=3150497&item_ids=3440906&item_ids=3376834&item_ids=3139708&item_ids=3331511&item_ids=3373198&item_ids=3236734&item_ids=3376434&item_ids=3322860&item_ids=3303061&item_ids=3287167&item_ids=3262172&item_ids=3228631&item_ids=3505011&item_ids=3249401&item_ids=3330951&item_ids=3494055&item_ids=3317227&item_ids=3405679&item_ids=3103384&item_ids=3418616&item_ids=3240028&item_ids=3456814&item_ids=3416910&item_ids=3429455&item_ids=3181675&item_ids=3309372&item_ids=3501566&item_ids=3240513&item_ids=3346510&item_ids=3406670&item_ids=3412596&item_ids=3214438&item_ids=3459715&item_ids=3493254&item_ids=3475114&item_ids=3501607&item_ids=3484623&item_ids=3190410&item_ids=3350050&item_ids=3495453&item_ids=3446619&item_ids=3451078&item_ids=3248718&item_ids=3345445&item_ids=3332380&item_ids=3450803&item_ids=3471049&item_ids=3438747&item_ids=3330749&item_ids=3446920&item_ids=3151682&item_ids=3501554&item_ids=3258532&item_ids=3435418&item_ids=3501551")

In [4]:
zigbang_result = json.loads(response.text)
zigbang_result.get("count_agent")  # 현재 몇 개의 매물 정보를 가지고 있는가?
                                   # 이런 key ( "count_agent" ) 들을 미리 알고 있는게 아니라 출력해서 확인해본 것 입니다.


Out[4]:
43

In [5]:
room_df = pd.DataFrame(columns=[
    "직방 매물번호",
    "연락처",
    "이메일",
    "부동산",
    "보증금",
    "월세",
])

In [6]:
for room_information in zigbang_result.get("items"):
    zigbang_id = room_information.get("item").get("id")
    phonenumber = room_information.get("item").get("original_user_phone")
    email = room_information.get("item").get("agent_address1")
    agent_name = room_information.get("item").get("agent_name")
    deposit = room_information.get("item").get("deposit")
    rent = room_information.get("item").get("rent")
    
    room_df.loc[len(room_df)] = [zigbang_id, phonenumber, email, agent_name, deposit, rent]

In [7]:
room_df


Out[7]:
직방 매물번호 연락처 이메일 부동산 보증금 월세
0 3467204 010-4780-3740 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 1000 100
1 3150497 010-4780-3740 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 11000 60
2 3440906 010-9134-5291 서울특별시 강남구 신사동 610-2 1층 열린공인중개사(강광수) 5000 65
3 3376834 010-4166-1970 서울특별시 강남구 논현동 108 웰스톤상가 B101 미래공인중개사(김유철) 3000 95
4 3331511 010-3015-2251 서울특별시 강남구 역삼동 696-10 1층 한백부동산공인중개사(김남조) 110 110
5 3373198 010-3907-0404 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 15000 70
6 3376434 010-9134-5291 서울특별시 강남구 신사동 610-2 1층 열린공인중개사(강광수) 1000 85
7 3322860 010-8574-7863 서울특별시 서초구 강남대로 545-4 , 1층 (반포동) 한강공인중개사(김상헌) 1000 80
8 3303061 010-4348-1202 서울특별시 강남구 논현동 193-39 동하공인중개사(임성우) 1000 60
9 3262172 010-8626-8554 서울특별시 강남구 논현로 111길 14, 1층(논현동) 스타공인중개사(박정직) 2000 50
10 3228631 010-6279-9950 서울특별시 강남구 대치동 891-26번지 아이빌멤버스 105호 HS강남공인중개사(김현수) 1000 96
11 3505011 010-4520-0608 서울특별시 강남구 논현동 233-1 H공인중개사(김용만) 15000 70
12 3249401 010-8886-5877 서울특별시 강남구 봉은사로25길 13 1층(논현동) 도원공인중개사(손석진) 65 65
13 3330951 010-9905-4979 서울특별시 강남구 역삼로17길 9 강남우리공인중개사(어정화) 2000 150
14 3494055 010-6271-1877 서울특별시 강남구 압구정로 2길 62, 1층 청록공인중개사(하순자) 3000 60
15 3317227 010-3877-0714 서울특별시 강남구 역삼동 625-10 커피한잔부동산 커피한잔공인중개사(손별) 500 67
16 3405679 010-8025-7008 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 15000 60
17 3103384 010-3487-2672 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 5000 50
18 3418616 010-7540-8818 서울특별시 강남구 역삼동 657-271층 101호 나무공인중개사(조민영) 90 90
19 3456814 010-8574-7863 서울특별시 서초구 강남대로 545-4 , 1층 (반포동) 한강공인중개사(김상헌) 300 80
20 3181675 010-3487-2672 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 5000 60
21 3309372 010-3015-2251 서울특별시 강남구 역삼동 696-10 1층 한백부동산공인중개사(김남조) 75 75
22 3501566 010-3100-3561 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 1000 65
23 3346510 010-8886-5877 서울특별시 강남구 봉은사로25길 13 1층(논현동) 도원공인중개사(손석진) 65 65
24 3406670 010-4780-3740 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 1000 60
25 3493254 010-3539-9712 서울특별시 강남구 역삼동 682-20 431호 아셈타운공인중개사(임현옥) 7000 100
26 3501607 010-3100-3561 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 2000 63
27 3484623 010-2068-6634 서울특별시 강남구 논현동 116-3 웰컴공인중개사(이영진) 1000 120
28 3190410 010-8456-3090 서울특별시 강남구 테헤란로14길 45 1층(역삼동) 건우공인중개사(김상모) 70 70
29 3350050 010-6573-9788 서울특별시 강남구 삼성동 34-25 1층 NB공인중개사(길주현) 1000 70
30 3495453 010-8345-4383 서울특별시 강남구 역삼동 617-4 부동산네트워크공인중개사(황창문) 8000 55
31 3446619 010-8886-5877 서울특별시 강남구 봉은사로25길 13 1층(논현동) 도원공인중개사(손석진) 68 68
32 3451078 010-8626-8554 서울특별시 강남구 논현로 111길 14, 1층(논현동) 스타공인중개사(박정직) 4000 40
33 3345445 010-4667-8638 서울특별시 강남구 남부순환로 2917, 106호(대치동) 대청공인중개사(이선영) 14000 70
34 3332380 010-3015-2251 서울특별시 강남구 역삼동 696-10 1층 한백부동산공인중개사(김남조) 10000 100
35 3450803 010-8626-8554 서울특별시 강남구 논현로 111길 14, 1층(논현동) 스타공인중개사(박정직) 6000 50
36 3471049 010-4776-8102 서울특별시 강남구 봉은사로26길 30 1층(역삼동) 정성공인중개사(정문식) 100 100
37 3438747 010-4780-3740 서울특별시 강남구 논현1동 124-33 TODAY공인중개사(이인규) 3000 100
38 3330749 010-4166-1970 서울특별시 강남구 논현동 108 웰스톤상가 B101 미래공인중개사(김유철) 1000 85
39 3446920 010-3015-2251 서울특별시 강남구 역삼동 696-10 1층 한백부동산공인중개사(김남조) 75 75
40 3501554 010-3100-3561 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 1000 63
41 3435418 010-7777-4079 서울특별시 강남구 논현동 149-32 1F 친절한공인중개사(김천호) 500 65
42 3501551 010-3100-3561 서울특별시 강남구 삼성동 34-33 강남코리아공인중개사(기숙영) 3000 75

In [8]:
room_df.to_csv("zigbang_room.csv", index=False)