셀레니움(Selenium)과 파이썬(Python)으로 지도 크롤링 해보기

Posted by Siner on January 27, 2019

0) 계기

어느날 저희 아빠가 저에게,

아빠 : “이게 경기도 번지수를 보여주는 사이트인데, 일정 구역을 프린트해서 보고 싶어.”
아들 : “컴퓨터로 이렇게 잘 보이는데 왜 뽑아야되나요?”
아빠 : “어르신들과 같이 보는데 노트북으로 보여드리기는 그렇고, 전지로 뽑아가고 싶어.”
아들 : “네… 오늘 안에 처리해드리죠.”

해서 크롤러를 만들게 되었습니다.


1) 정보수집

보통의 지도 서비스에서는 지도 데이터를 각각의 작은 타일로 구성되어 있습니다.
따라서 그 작은 타일들을 전부 다운로드해서 하나의 이미지로 만드는 작업을 하면 됩니다.

일단 경기도부동산포털의 지도에서 타일 데이터(map tile)를 어떤 식으로 가져오는지 찾아봅시다.

image

로딩과 동시에 페이지 검사를 들어가서 network 탭을 살펴보면, 아래와 같은 결과가 나옵니다.

image

예상한대로 맵 타일을 여러 개 받아오는 것이 보이네요, 좀더 자세하게 확인하기 위해 하나를 클릭해봅시다.

image image

Headers » General » Request URL 에 나타난 주소로 한번 들어가보면,
Preview 에서 확인했던 타일이 제대로 나타나는 것이 보입니다.

이제 Request URL의 규칙을 찾아봅시다.

아까 확인한 타일 바로 아래의 데이터를 클릭해서 URL을 비교해보면,
https://gris.gg.go.kr:8888/grisgis/rest/services/bdsMap_Cbnd_Cache/MapServer/tile/10/71933/69382
https://gris.gg.go.kr:8888/grisgis/rest/services/bdsMap_Cbnd_Cache/MapServer/tile/10/71934/69382

마지막 숫자는 변화가 없었지만, 뒤에서 두 번째 숫자가 하나 커졌네요.
Preview 를 비교해봅시다.

image image

두 개의 이미지가 위아래로 붙어있네요.
이로써 URL의 뒤에서 두 번째 숫자가 의미하는 것이 Y축 위치임을 확인했습니다.
남쪽에 위치할수록 큰 숫자네요.

그렇다면 맨 마지막에 있는 숫자는 X축의 데이터,
뒤에서 세 번째에 있는 10이라는 숫자는 화면배율을 나타내는 것으로 추측이 가능합니다.

X축 데이터가 동쪽으로 갈수록 커지는지 작아지는지를 확인하기 위해
network 탭을 켜둔 채로 실제 지도를 동쪽으로 살짝 이동해봅니다.

image

69390과 69391이라는 새로운 데이터가 추가됨을 확인했습니다.
이전에 가지고 있던 데이터가 이것보다 작은 숫자였으니 동쪽으로 갈수록 값이 커지는 구조를 가지고 있습니다.

이제 크롤링만 남았습니다.

2) 어떻게 할 것인가

Request URL의 주소를 보면 마지막 세 영역이 /배율/Y축위치/X축위치/ 인 것을 확인했고,
이제 이걸 URL규칙에 따라, 차례대로 크롤링 한 후, 하나씩 합쳐나가는 작업을 진행할겁니다.

맵 타일 데이터를 모두 다운로드 받을 스크립트를 작성합시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from selenium import webdriver


def screenshot(arr):
    i = arr[0]
    j = arr[2]

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("headless")
    chrome_options.add_argument("window-size=256x256")
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("disable-gpu")
    chrome_options.add_argument("--disable-dev-shm-usage")

    driver = webdriver.Chrome("./chromedriver", chrome_options=chrome_options)

    while(j < arr[3] + 1):
        i = arr[0]
        while(i < arr[1] + 1):
            url = 'https://gris.gg.go.kr:8888/grisgis/rest/services/bdsMap_Cbnd_Cache/MapServer/tile/10/%s/%s' % (str(j), str(i))
            driver.get(url)
            filename = 'images/10/%s_%s.png' % (str(j), str(i))
            driver.save_screenshot(filename)
            print("save %s_%s.png" % (str(j), str(i)))

            i = i + 1
        j = j + 1


def start():
    x_min = 69375
    x_max = 69404
    y_min = 71925
    y_max = 71972

    arr = [x_min, x_max, y_min, y_max]
    screenshot(arr)


if __name__ == "__main__":
    start()

3) 크롤링

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
siner@siner-desktop:~/myproject/images/10$ ls
71925_69375.png  71929_69375.png  71933_69375.png  71937_69375.png  71941_69375.png  71945_69375.png  71949_69375.png  71953_69375.png  71957_69375.png  71961_69375.png  71965_69375.png  71969_69375.png
71925_69376.png  71929_69376.png  71933_69376.png  71937_69376.png  71941_69376.png  71945_69376.png  71949_69376.png  71953_69376.png  71957_69376.png  71961_69376.png  71965_69376.png  71969_69376.png
71925_69377.png  71929_69377.png  71933_69377.png  71937_69377.png  71941_69377.png  71945_69377.png  71949_69377.png  71953_69377.png  71957_69377.png  71961_69377.png  71965_69377.png  71969_69377.png
71925_69378.png  71929_69378.png  71933_69378.png  71937_69378.png  71941_69378.png  71945_69378.png  71949_69378.png  71953_69378.png  71957_69378.png  71961_69378.png  71965_69378.png  71969_69378.png
71925_69379.png  71929_69379.png  71933_69379.png  71937_69379.png  71941_69379.png  71945_69379.png  71949_69379.png  71953_69379.png  71957_69379.png  71961_69379.png  71965_69379.png  71969_69379.png
71925_69380.png  71929_69380.png  71933_69380.png  71937_69380.png  71941_69380.png  71945_69380.png  71949_69380.png  71953_69380.png  71957_69380.png  71961_69380.png  71965_69380.png  71969_69380.png
71925_69381.png  71929_69381.png  71933_69381.png  71937_69381.png  71941_69381.png  71945_69381.png  71949_69381.png  71953_69381.png  71957_69381.png  71961_69381.png  71965_69381.png  71969_69381.png
71925_69382.png  71929_69382.png  71933_69382.png  71937_69382.png  71941_69382.png  71945_69382.png  71949_69382.png  71953_69382.png  71957_69382.png  71961_69382.png  71965_69382.png  71969_69382.png
71925_69383.png  71929_69383.png  71933_69383.png  71937_69383.png  71941_69383.png  71945_69383.png  71949_69383.png  71953_69383.png  71957_69383.png  71961_69383.png  71965_69383.png  71969_69383.png
71925_69384.png  71929_69384.png  71933_69384.png  71937_69384.png  71941_69384.png  71945_69384.png  71949_69384.png  71953_69384.png  71957_69384.png  71961_69384.png  71965_69384.png  71969_69384.png
71925_69385.png  71929_69385.png  71933_69385.png  71937_69385.png  71941_69385.png  71945_69385.png  71949_69385.png  71953_69385.png  71957_69385.png  71961_69385.png  71965_69385.png  71969_69385.png
71925_69386.png  71929_69386.png  71933_69386.png  71937_69386.png  71941_69386.png  71945_69386.png  71949_69386.png  71953_69386.png  71957_69386.png  71961_69386.png  71965_69386.png  71969_69386.png
71925_69387.png  71929_69387.png  71933_69387.png  71937_69387.png  71941_69387.png  71945_69387.png  71949_69387.png  71953_69387.png  71957_69387.png  71961_69387.png  71965_69387.png  71969_69387.png
71925_69388.png  71929_69388.png  71933_69388.png  71937_69388.png  71941_69388.png  71945_69388.png  71949_69388.png  71953_69388.png  71957_69388.png  71961_69388.png  71965_69388.png  71969_69388.png
71925_69389.png  71929_69389.png  71933_69389.png  71937_69389.png  71941_69389.png  71945_69389.png  71949_69389.png  71953_69389.png  71957_69389.png  71961_69389.png  71965_69389.png  71969_69389.png
71925_69390.png  71929_69390.png  71933_69390.png  71937_69390.png  71941_69390.png  71945_69390.png  71949_69390.png  71953_69390.png  71957_69390.png  71961_69390.png  71965_69390.png  71969_69390.png
71925_69391.png  71929_69391.png  71933_69391.png  71937_69391.png  71941_69391.png  71945_69391.png  71949_69391.png  71953_69391.png  71957_69391.png  71961_69391.png  71965_69391.png  71969_69391.png
71925_69392.png  71929_69392.png  71933_69392.png  71937_69392.png  71941_69392.png  71945_69392.png  71949_69392.png  71953_69392.png  71957_69392.png  71961_69392.png  71965_69392.png  71969_69392.png
71925_69393.png  71929_69393.png  71933_69393.png  71937_69393.png  71941_69393.png  71945_69393.png  71949_69393.png  71953_69393.png  71957_69393.png  71961_69393.png  71965_69393.png  71969_69393.png
71925_69394.png  71929_69394.png  71933_69394.png  71937_69394.png  71941_69394.png  71945_69394.png  71949_69394.png  71953_69394.png  71957_69394.png  71961_69394.png  71965_69394.png  71969_69394.png
71925_69395.png  71929_69395.png  71933_69395.png  71937_69395.png  71941_69395.png  71945_69395.png  71949_69395.png  71953_69395.png  71957_69395.png  71961_69395.png  71965_69395.png  71969_69395.png
71925_69396.png  71929_69396.png  71933_69396.png  71937_69396.png  71941_69396.png  71945_69396.png  71949_69396.png  71953_69396.png  71957_69396.png  71961_69396.png  71965_69396.png  71969_69396.png
71925_69397.png  71929_69397.png  71933_69397.png  71937_69397.png  71941_69397.png  71945_69397.png  71949_69397.png  71953_69397.png  71957_69397.png  71961_69397.png  71965_69397.png  71969_69397.png
71925_69398.png  71929_69398.png  71933_69398.png  71937_69398.png  71941_69398.png  71945_69398.png  71949_69398.png  71953_69398.png  71957_69398.png  71961_69398.png  71965_69398.png  71969_69398.png
71925_69399.png  71929_69399.png  71933_69399.png  71937_69399.png  71941_69399.png  71945_69399.png  71949_69399.png  71953_69399.png  71957_69399.png  71961_69399.png  71965_69399.png  71969_69399.png
71925_69400.png  71929_69400.png  71933_69400.png  71937_69400.png  71941_69400.png  71945_69400.png  71949_69400.png  71953_69400.png  71957_69400.png  71961_69400.png  71965_69400.png  71969_69400.png
71925_69401.png  71929_69401.png  71933_69401.png  71937_69401.png  71941_69401.png  71945_69401.png  71949_69401.png  71953_69401.png  71957_69401.png  71961_69401.png  71965_69401.png  71969_69401.png
71925_69402.png  71929_69402.png  71933_69402.png  71937_69402.png  71941_69402.png  71945_69402.png  71949_69402.png  71953_69402.png  71957_69402.png  71961_69402.png  71965_69402.png  71969_69402.png
71925_69403.png  71929_69403.png  71933_69403.png  71937_69403.png  71941_69403.png  71945_69403.png  71949_69403.png  71953_69403.png  71957_69403.png  71961_69403.png  71965_69403.png  71969_69403.png
71925_69404.png  71929_69404.png  71933_69404.png  71937_69404.png  71941_69404.png  71945_69404.png  71949_69404.png  71953_69404.png  71957_69404.png  71961_69404.png  71965_69404.png  71969_69404.png
71926_69375.png  71930_69375.png  71934_69375.png  71938_69375.png  71942_69375.png  71946_69375.png  71950_69375.png  71954_69375.png  71958_69375.png  71962_69375.png  71966_69375.png  71970_69375.png
71926_69376.png  71930_69376.png  71934_69376.png  71938_69376.png  71942_69376.png  71946_69376.png  71950_69376.png  71954_69376.png  71958_69376.png  71962_69376.png  71966_69376.png  71970_69376.png
71926_69377.png  71930_69377.png  71934_69377.png  71938_69377.png  71942_69377.png  71946_69377.png  71950_69377.png  71954_69377.png  71958_69377.png  71962_69377.png  71966_69377.png  71970_69377.png
71926_69378.png  71930_69378.png  71934_69378.png  71938_69378.png  71942_69378.png  71946_69378.png  71950_69378.png  71954_69378.png  71958_69378.png  71962_69378.png  71966_69378.png  71970_69378.png
71926_69379.png  71930_69379.png  71934_69379.png  71938_69379.png  71942_69379.png  71946_69379.png  71950_69379.png  71954_69379.png  71958_69379.png  71962_69379.png  71966_69379.png  71970_69379.png
71926_69380.png  71930_69380.png  71934_69380.png  71938_69380.png  71942_69380.png  71946_69380.png  71950_69380.png  71954_69380.png  71958_69380.png  71962_69380.png  71966_69380.png  71970_69380.png
71926_69381.png  71930_69381.png  71934_69381.png  71938_69381.png  71942_69381.png  71946_69381.png  71950_69381.png  71954_69381.png  71958_69381.png  71962_69381.png  71966_69381.png  71970_69381.png
71926_69382.png  71930_69382.png  71934_69382.png  71938_69382.png  71942_69382.png  71946_69382.png  71950_69382.png  71954_69382.png  71958_69382.png  71962_69382.png  71966_69382.png  71970_69382.png
71926_69383.png  71930_69383.png  71934_69383.png  71938_69383.png  71942_69383.png  71946_69383.png  71950_69383.png  71954_69383.png  71958_69383.png  71962_69383.png  71966_69383.png  71970_69383.png
71926_69384.png  71930_69384.png  71934_69384.png  71938_69384.png  71942_69384.png  71946_69384.png  71950_69384.png  71954_69384.png  71958_69384.png  71962_69384.png  71966_69384.png  71970_69384.png
71926_69385.png  71930_69385.png  71934_69385.png  71938_69385.png  71942_69385.png  71946_69385.png  71950_69385.png  71954_69385.png  71958_69385.png  71962_69385.png  71966_69385.png  71970_69385.png
71926_69386.png  71930_69386.png  71934_69386.png  71938_69386.png  71942_69386.png  71946_69386.png  71950_69386.png  71954_69386.png  71958_69386.png  71962_69386.png  71966_69386.png  71970_69386.png
71926_69387.png  71930_69387.png  71934_69387.png  71938_69387.png  71942_69387.png  71946_69387.png  71950_69387.png  71954_69387.png  71958_69387.png  71962_69387.png  71966_69387.png  71970_69387.png
71926_69388.png  71930_69388.png  71934_69388.png  71938_69388.png  71942_69388.png  71946_69388.png  71950_69388.png  71954_69388.png  71958_69388.png  71962_69388.png  71966_69388.png  71970_69388.png
71926_69389.png  71930_69389.png  71934_69389.png  71938_69389.png  71942_69389.png  71946_69389.png  71950_69389.png  71954_69389.png  71958_69389.png  71962_69389.png  71966_69389.png  71970_69389.png
71926_69390.png  71930_69390.png  71934_69390.png  71938_69390.png  71942_69390.png  71946_69390.png  71950_69390.png  71954_69390.png  71958_69390.png  71962_69390.png  71966_69390.png  71970_69390.png
71926_69391.png  71930_69391.png  71934_69391.png  71938_69391.png  71942_69391.png  71946_69391.png  71950_69391.png  71954_69391.png  71958_69391.png  71962_69391.png  71966_69391.png  71970_69391.png
71926_69392.png  71930_69392.png  71934_69392.png  71938_69392.png  71942_69392.png  71946_69392.png  71950_69392.png  71954_69392.png  71958_69392.png  71962_69392.png  71966_69392.png  71970_69392.png
71926_69393.png  71930_69393.png  71934_69393.png  71938_69393.png  71942_69393.png  71946_69393.png  71950_69393.png  71954_69393.png  71958_69393.png  71962_69393.png  71966_69393.png  71970_69393.png
71926_69394.png  71930_69394.png  71934_69394.png  71938_69394.png  71942_69394.png  71946_69394.png  71950_69394.png  71954_69394.png  71958_69394.png  71962_69394.png  71966_69394.png  71970_69394.png
71926_69395.png  71930_69395.png  71934_69395.png  71938_69395.png  71942_69395.png  71946_69395.png  71950_69395.png  71954_69395.png  71958_69395.png  71962_69395.png  71966_69395.png  71970_69395.png
71926_69396.png  71930_69396.png  71934_69396.png  71938_69396.png  71942_69396.png  71946_69396.png  71950_69396.png  71954_69396.png  71958_69396.png  71962_69396.png  71966_69396.png  71970_69396.png
71926_69397.png  71930_69397.png  71934_69397.png  71938_69397.png  71942_69397.png  71946_69397.png  71950_69397.png  71954_69397.png  71958_69397.png  71962_69397.png  71966_69397.png  71970_69397.png
71926_69398.png  71930_69398.png  71934_69398.png  71938_69398.png  71942_69398.png  71946_69398.png  71950_69398.png  71954_69398.png  71958_69398.png  71962_69398.png  71966_69398.png  71970_69398.png
71926_69399.png  71930_69399.png  71934_69399.png  71938_69399.png  71942_69399.png  71946_69399.png  71950_69399.png  71954_69399.png  71958_69399.png  71962_69399.png  71966_69399.png  71970_69399.png
71926_69400.png  71930_69400.png  71934_69400.png  71938_69400.png  71942_69400.png  71946_69400.png  71950_69400.png  71954_69400.png  71958_69400.png  71962_69400.png  71966_69400.png  71970_69400.png
71926_69401.png  71930_69401.png  71934_69401.png  71938_69401.png  71942_69401.png  71946_69401.png  71950_69401.png  71954_69401.png  71958_69401.png  71962_69401.png  71966_69401.png  71970_69401.png
71926_69402.png  71930_69402.png  71934_69402.png  71938_69402.png  71942_69402.png  71946_69402.png  71950_69402.png  71954_69402.png  71958_69402.png  71962_69402.png  71966_69402.png  71970_69402.png
71926_69403.png  71930_69403.png  71934_69403.png  71938_69403.png  71942_69403.png  71946_69403.png  71950_69403.png  71954_69403.png  71958_69403.png  71962_69403.png  71966_69403.png  71970_69403.png
71926_69404.png  71930_69404.png  71934_69404.png  71938_69404.png  71942_69404.png  71946_69404.png  71950_69404.png  71954_69404.png  71958_69404.png  71962_69404.png  71966_69404.png  71970_69404.png
71927_69375.png  71931_69375.png  71935_69375.png  71939_69375.png  71943_69375.png  71947_69375.png  71951_69375.png  71955_69375.png  71959_69375.png  71963_69375.png  71967_69375.png  71971_69375.png
71927_69376.png  71931_69376.png  71935_69376.png  71939_69376.png  71943_69376.png  71947_69376.png  71951_69376.png  71955_69376.png  71959_69376.png  71963_69376.png  71967_69376.png  71971_69376.png
71927_69377.png  71931_69377.png  71935_69377.png  71939_69377.png  71943_69377.png  71947_69377.png  71951_69377.png  71955_69377.png  71959_69377.png  71963_69377.png  71967_69377.png  71971_69377.png
71927_69378.png  71931_69378.png  71935_69378.png  71939_69378.png  71943_69378.png  71947_69378.png  71951_69378.png  71955_69378.png  71959_69378.png  71963_69378.png  71967_69378.png  71971_69378.png
71927_69379.png  71931_69379.png  71935_69379.png  71939_69379.png  71943_69379.png  71947_69379.png  71951_69379.png  71955_69379.png  71959_69379.png  71963_69379.png  71967_69379.png  71971_69379.png
71927_69380.png  71931_69380.png  71935_69380.png  71939_69380.png  71943_69380.png  71947_69380.png  71951_69380.png  71955_69380.png  71959_69380.png  71963_69380.png  71967_69380.png  71971_69380.png
71927_69381.png  71931_69381.png  71935_69381.png  71939_69381.png  71943_69381.png  71947_69381.png  71951_69381.png  71955_69381.png  71959_69381.png  71963_69381.png  71967_69381.png  71971_69381.png
71927_69382.png  71931_69382.png  71935_69382.png  71939_69382.png  71943_69382.png  71947_69382.png  71951_69382.png  71955_69382.png  71959_69382.png  71963_69382.png  71967_69382.png  71971_69382.png
71927_69383.png  71931_69383.png  71935_69383.png  71939_69383.png  71943_69383.png  71947_69383.png  71951_69383.png  71955_69383.png  71959_69383.png  71963_69383.png  71967_69383.png  71971_69383.png
71927_69384.png  71931_69384.png  71935_69384.png  71939_69384.png  71943_69384.png  71947_69384.png  71951_69384.png  71955_69384.png  71959_69384.png  71963_69384.png  71967_69384.png  71971_69384.png
71927_69385.png  71931_69385.png  71935_69385.png  71939_69385.png  71943_69385.png  71947_69385.png  71951_69385.png  71955_69385.png  71959_69385.png  71963_69385.png  71967_69385.png  71971_69385.png
71927_69386.png  71931_69386.png  71935_69386.png  71939_69386.png  71943_69386.png  71947_69386.png  71951_69386.png  71955_69386.png  71959_69386.png  71963_69386.png  71967_69386.png  71971_69386.png
71927_69387.png  71931_69387.png  71935_69387.png  71939_69387.png  71943_69387.png  71947_69387.png  71951_69387.png  71955_69387.png  71959_69387.png  71963_69387.png  71967_69387.png  71971_69387.png
71927_69388.png  71931_69388.png  71935_69388.png  71939_69388.png  71943_69388.png  71947_69388.png  71951_69388.png  71955_69388.png  71959_69388.png  71963_69388.png  71967_69388.png  71971_69388.png
71927_69389.png  71931_69389.png  71935_69389.png  71939_69389.png  71943_69389.png  71947_69389.png  71951_69389.png  71955_69389.png  71959_69389.png  71963_69389.png  71967_69389.png  71971_69389.png
71927_69390.png  71931_69390.png  71935_69390.png  71939_69390.png  71943_69390.png  71947_69390.png  71951_69390.png  71955_69390.png  71959_69390.png  71963_69390.png  71967_69390.png  71971_69390.png
71927_69391.png  71931_69391.png  71935_69391.png  71939_69391.png  71943_69391.png  71947_69391.png  71951_69391.png  71955_69391.png  71959_69391.png  71963_69391.png  71967_69391.png  71971_69391.png
71927_69392.png  71931_69392.png  71935_69392.png  71939_69392.png  71943_69392.png  71947_69392.png  71951_69392.png  71955_69392.png  71959_69392.png  71963_69392.png  71967_69392.png  71971_69392.png
71927_69393.png  71931_69393.png  71935_69393.png  71939_69393.png  71943_69393.png  71947_69393.png  71951_69393.png  71955_69393.png  71959_69393.png  71963_69393.png  71967_69393.png  71971_69393.png
71927_69394.png  71931_69394.png  71935_69394.png  71939_69394.png  71943_69394.png  71947_69394.png  71951_69394.png  71955_69394.png  71959_69394.png  71963_69394.png  71967_69394.png  71971_69394.png
71927_69395.png  71931_69395.png  71935_69395.png  71939_69395.png  71943_69395.png  71947_69395.png  71951_69395.png  71955_69395.png  71959_69395.png  71963_69395.png  71967_69395.png  71971_69395.png
71927_69396.png  71931_69396.png  71935_69396.png  71939_69396.png  71943_69396.png  71947_69396.png  71951_69396.png  71955_69396.png  71959_69396.png  71963_69396.png  71967_69396.png  71971_69396.png
71927_69397.png  71931_69397.png  71935_69397.png  71939_69397.png  71943_69397.png  71947_69397.png  71951_69397.png  71955_69397.png  71959_69397.png  71963_69397.png  71967_69397.png  71971_69397.png
71927_69398.png  71931_69398.png  71935_69398.png  71939_69398.png  71943_69398.png  71947_69398.png  71951_69398.png  71955_69398.png  71959_69398.png  71963_69398.png  71967_69398.png  71971_69398.png
71927_69399.png  71931_69399.png  71935_69399.png  71939_69399.png  71943_69399.png  71947_69399.png  71951_69399.png  71955_69399.png  71959_69399.png  71963_69399.png  71967_69399.png  71971_69399.png
71927_69400.png  71931_69400.png  71935_69400.png  71939_69400.png  71943_69400.png  71947_69400.png  71951_69400.png  71955_69400.png  71959_69400.png  71963_69400.png  71967_69400.png  71971_69400.png
71927_69401.png  71931_69401.png  71935_69401.png  71939_69401.png  71943_69401.png  71947_69401.png  71951_69401.png  71955_69401.png  71959_69401.png  71963_69401.png  71967_69401.png  71971_69401.png
71927_69402.png  71931_69402.png  71935_69402.png  71939_69402.png  71943_69402.png  71947_69402.png  71951_69402.png  71955_69402.png  71959_69402.png  71963_69402.png  71967_69402.png  71971_69402.png
71927_69403.png  71931_69403.png  71935_69403.png  71939_69403.png  71943_69403.png  71947_69403.png  71951_69403.png  71955_69403.png  71959_69403.png  71963_69403.png  71967_69403.png  71971_69403.png
71927_69404.png  71931_69404.png  71935_69404.png  71939_69404.png  71943_69404.png  71947_69404.png  71951_69404.png  71955_69404.png  71959_69404.png  71963_69404.png  71967_69404.png  71971_69404.png
71928_69375.png  71932_69375.png  71936_69375.png  71940_69375.png  71944_69375.png  71948_69375.png  71952_69375.png  71956_69375.png  71960_69375.png  71964_69375.png  71968_69375.png  71972_69375.png
71928_69376.png  71932_69376.png  71936_69376.png  71940_69376.png  71944_69376.png  71948_69376.png  71952_69376.png  71956_69376.png  71960_69376.png  71964_69376.png  71968_69376.png  71972_69376.png
71928_69377.png  71932_69377.png  71936_69377.png  71940_69377.png  71944_69377.png  71948_69377.png  71952_69377.png  71956_69377.png  71960_69377.png  71964_69377.png  71968_69377.png  71972_69377.png
71928_69378.png  71932_69378.png  71936_69378.png  71940_69378.png  71944_69378.png  71948_69378.png  71952_69378.png  71956_69378.png  71960_69378.png  71964_69378.png  71968_69378.png  71972_69378.png
71928_69379.png  71932_69379.png  71936_69379.png  71940_69379.png  71944_69379.png  71948_69379.png  71952_69379.png  71956_69379.png  71960_69379.png  71964_69379.png  71968_69379.png  71972_69379.png
71928_69380.png  71932_69380.png  71936_69380.png  71940_69380.png  71944_69380.png  71948_69380.png  71952_69380.png  71956_69380.png  71960_69380.png  71964_69380.png  71968_69380.png  71972_69380.png
71928_69381.png  71932_69381.png  71936_69381.png  71940_69381.png  71944_69381.png  71948_69381.png  71952_69381.png  71956_69381.png  71960_69381.png  71964_69381.png  71968_69381.png  71972_69381.png
71928_69382.png  71932_69382.png  71936_69382.png  71940_69382.png  71944_69382.png  71948_69382.png  71952_69382.png  71956_69382.png  71960_69382.png  71964_69382.png  71968_69382.png  71972_69382.png
71928_69383.png  71932_69383.png  71936_69383.png  71940_69383.png  71944_69383.png  71948_69383.png  71952_69383.png  71956_69383.png  71960_69383.png  71964_69383.png  71968_69383.png  71972_69383.png
71928_69384.png  71932_69384.png  71936_69384.png  71940_69384.png  71944_69384.png  71948_69384.png  71952_69384.png  71956_69384.png  71960_69384.png  71964_69384.png  71968_69384.png  71972_69384.png
71928_69385.png  71932_69385.png  71936_69385.png  71940_69385.png  71944_69385.png  71948_69385.png  71952_69385.png  71956_69385.png  71960_69385.png  71964_69385.png  71968_69385.png  71972_69385.png
71928_69386.png  71932_69386.png  71936_69386.png  71940_69386.png  71944_69386.png  71948_69386.png  71952_69386.png  71956_69386.png  71960_69386.png  71964_69386.png  71968_69386.png  71972_69386.png
71928_69387.png  71932_69387.png  71936_69387.png  71940_69387.png  71944_69387.png  71948_69387.png  71952_69387.png  71956_69387.png  71960_69387.png  71964_69387.png  71968_69387.png  71972_69387.png
71928_69388.png  71932_69388.png  71936_69388.png  71940_69388.png  71944_69388.png  71948_69388.png  71952_69388.png  71956_69388.png  71960_69388.png  71964_69388.png  71968_69388.png  71972_69388.png
71928_69389.png  71932_69389.png  71936_69389.png  71940_69389.png  71944_69389.png  71948_69389.png  71952_69389.png  71956_69389.png  71960_69389.png  71964_69389.png  71968_69389.png  71972_69389.png
71928_69390.png  71932_69390.png  71936_69390.png  71940_69390.png  71944_69390.png  71948_69390.png  71952_69390.png  71956_69390.png  71960_69390.png  71964_69390.png  71968_69390.png  71972_69390.png
71928_69391.png  71932_69391.png  71936_69391.png  71940_69391.png  71944_69391.png  71948_69391.png  71952_69391.png  71956_69391.png  71960_69391.png  71964_69391.png  71968_69391.png  71972_69391.png
71928_69392.png  71932_69392.png  71936_69392.png  71940_69392.png  71944_69392.png  71948_69392.png  71952_69392.png  71956_69392.png  71960_69392.png  71964_69392.png  71968_69392.png  71972_69392.png
71928_69393.png  71932_69393.png  71936_69393.png  71940_69393.png  71944_69393.png  71948_69393.png  71952_69393.png  71956_69393.png  71960_69393.png  71964_69393.png  71968_69393.png  71972_69393.png
71928_69394.png  71932_69394.png  71936_69394.png  71940_69394.png  71944_69394.png  71948_69394.png  71952_69394.png  71956_69394.png  71960_69394.png  71964_69394.png  71968_69394.png  71972_69394.png
71928_69395.png  71932_69395.png  71936_69395.png  71940_69395.png  71944_69395.png  71948_69395.png  71952_69395.png  71956_69395.png  71960_69395.png  71964_69395.png  71968_69395.png  71972_69395.png
71928_69396.png  71932_69396.png  71936_69396.png  71940_69396.png  71944_69396.png  71948_69396.png  71952_69396.png  71956_69396.png  71960_69396.png  71964_69396.png  71968_69396.png  71972_69396.png
71928_69397.png  71932_69397.png  71936_69397.png  71940_69397.png  71944_69397.png  71948_69397.png  71952_69397.png  71956_69397.png  71960_69397.png  71964_69397.png  71968_69397.png  71972_69397.png
71928_69398.png  71932_69398.png  71936_69398.png  71940_69398.png  71944_69398.png  71948_69398.png  71952_69398.png  71956_69398.png  71960_69398.png  71964_69398.png  71968_69398.png  71972_69398.png
71928_69399.png  71932_69399.png  71936_69399.png  71940_69399.png  71944_69399.png  71948_69399.png  71952_69399.png  71956_69399.png  71960_69399.png  71964_69399.png  71968_69399.png  71972_69399.png
71928_69400.png  71932_69400.png  71936_69400.png  71940_69400.png  71944_69400.png  71948_69400.png  71952_69400.png  71956_69400.png  71960_69400.png  71964_69400.png  71968_69400.png  71972_69400.png
71928_69401.png  71932_69401.png  71936_69401.png  71940_69401.png  71944_69401.png  71948_69401.png  71952_69401.png  71956_69401.png  71960_69401.png  71964_69401.png  71968_69401.png  71972_69401.png
71928_69402.png  71932_69402.png  71936_69402.png  71940_69402.png  71944_69402.png  71948_69402.png  71952_69402.png  71956_69402.png  71960_69402.png  71964_69402.png  71968_69402.png  71972_69402.png
71928_69403.png  71932_69403.png  71936_69403.png  71940_69403.png  71944_69403.png  71948_69403.png  71952_69403.png  71956_69403.png  71960_69403.png  71964_69403.png  71968_69403.png  71972_69403.png
71928_69404.png  71932_69404.png  71936_69404.png  71940_69404.png  71944_69404.png  71948_69404.png  71952_69404.png  71956_69404.png  71960_69404.png  71964_69404.png  71968_69404.png  71972_69404.png
siner@siner-desktop:~/crawling/images/10$ 

스크립트 생성 결과 엄청난 양의 이미지를 얻었습니다.
실제로 크롤링에 성공했는지 확인하기 위해, GUI기반의 컴퓨터로 파일을 옮겨서 확인해봅니다.

image

제대로 이미지를 뽑았네요.

4) 이미지 합치기

위에서 얻은 이미지들을 합치기 위해 스크립트를 작성해봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from PIL import Image


def append_images(arr):
    i = arr[0]
    j = arr[2]
    k = 0
    l = 0

    pixel_x = (arr[1] - arr[0] + 1) * 256
    pixel_y = (arr[3] - arr[2] + 1) * 256

    result = Image.new("RGBA", (pixel_x, pixel_y))


    while(j < arr[3] + 1):
        i = arr[0]
        k = 0
        while(i < arr[1] + 1):
            filename = 'images/10/%s_%s.png' % (str(j), str(i))
            print('j = %s, i = %s' % (str(j), str(i)))
            im = Image.open(filename)
            result.paste(im=im, box=(k * 256, l * 256))
            i = i + 1
            k = k + 1
        j = j + 1
        l = l + 1

    result.save('result.png')


def start():
    x_min = 69375
    x_max = 69404
    y_min = 71925
    y_max = 71972

    arr = [x_min, x_max, y_min, y_max]
    append_images(arr)


if __name__ == "__main__":
    start()

5) 결과

스크립트를 돌려서 얻은 result.png 는 아래와 같습니다.

image

하나의 큰 이미지로 합쳐진 것이 보이네요.
확대해서 상세 번지수가 보이는지 확인해봅니다.

image

이로써 크롤링을 통해 나만의 지도 데이터를 손에 넣었습니다.