Skip to content

kitworks-kiring/kiring-map-crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—บ๏ธ ๋„ค์ด๋ฒ„์ง€๋„ ์Œ์‹์  ํฌ๋กค๋Ÿฌ

๋„ค์ด๋ฒ„๋งต ํฌ๋กค๋ง ํ™”๋ฉด ์บก์ณ

KIRING ํ”„๋กœ์ ํŠธ ์˜ ์ผํ™˜์œผ๋กœ, ๋„ค์ด๋ฒ„์ง€๋„์—์„œ ์Œ์‹์  ์ •๋ณด๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ ,
๋ฐ์ดํ„ฐ๋ฅผ ์ •์ œ ๋ฐ ํ‘œ์ค€ํ™”ํ•˜์—ฌ ์—‘์…€ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” Python ๊ธฐ๋ฐ˜ ํฌ๋กค๋Ÿฌ์ž…๋‹ˆ๋‹ค.



โš™๏ธ ์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ์„ค๊ณ„ ์˜๋„

1. ๐Ÿค– ์ž๋™ํ™”๋œ ๋„ค์ด๋ฒ„์ง€๋„ ํฌ๋กค๋ง

  • Selenium์„ ํ™œ์šฉํ•˜์—ฌ ๋„ค์ด๋ฒ„์ง€๋„ ์›นํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

  • ๋„ค์ด๋ฒ„์ง€๋„์˜ iframe ๊ตฌ์กฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ, ์Œ์‹์  ๋ฆฌ์ŠคํŠธ์™€ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

  • ๋™์  ๋กœ๋”ฉ/์Šคํฌ๋กค ๋“ฑ ์‹ค์ œ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์„ ์ตœ๋Œ€ํ•œ ๋ชจ๋ฐฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ˆ„๋ฝ์—†์ด ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.


2. ๐Ÿ“ ์Œ์‹์  ์ƒ์„ธ ์ •๋ณด ์ˆ˜์ง‘

  • ์Œ์‹์ ์˜ ์ด๋ฆ„, ์นดํ…Œ๊ณ ๋ฆฌ, ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ, ๋Œ€ํ‘œ ์ด๋ฏธ์ง€, ๋ฉ”๋‰ด ๋“ฑ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒ์„ธ ํŽ˜์ด์ง€ ๋‚ด ์Šคํฌ๋กค ๋ฐ ๋ฒ„ํŠผ ํด๋ฆญ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.


3. ๐Ÿ“ ์ขŒํ‘œ ๋ณ€ํ™˜ (Geocoding)

  • ์ฃผ์†Œ ์ •๋ณด๋ฅผ ์นด์นด์˜ค ์ง€๋„ API์™€ ์—ฐ๋™ํ•˜์—ฌ ์œ„๋„, ๊ฒฝ๋„๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • ํ™˜๊ฒฝ๋ณ€์ˆ˜(.env)๋กœ API Key๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ๋ณด์•ˆ์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.


4. ๐Ÿ“Š ์—‘์…€ ํŒŒ์ผ ์ €์žฅ ๋ฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

  • pandas์™€ openpyxl์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์—‘์…€ ํŒŒ์ผ(.xlsx)๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ •์ œ ๋ฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์…‹์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.



๐Ÿ—‚๏ธ ํด๋” ๋ฐ ์ฝ”๋“œ ๊ตฌ์กฐ

๐Ÿ“ฆkiring-map-crawler
 โ”ฃ ๐Ÿ“œ.env
 โ”ฃ ๐Ÿ“œ.gitignore
 โ”ฃ ๐Ÿ“œgeocoding.py           # ์นด์นด์˜ค ์ง€๋„ API ์—ฐ๋™ ๋ฐ ์ขŒํ‘œ ๋ณ€ํ™˜
 โ”ฃ ๐Ÿ“œnaver_map_crawler.py   # ๋ฉ”์ธ ํฌ๋กค๋ง ๋กœ์ง
 โ”ฃ ๐Ÿ“œscroll_utils.py        # ์ž๋™ ์Šคํฌ๋กค ์œ ํ‹ธ๋ฆฌํ‹ฐ
 โ”— ๐Ÿ“œfocus_utils.py         # iframe ํฌ์ปค์‹ฑ ์œ ํ‹ธ๋ฆฌํ‹ฐ (๋ฆฌ์ŠคํŠธ/์ƒ์„ธ)



๐Ÿงฉ ์ฃผ์š” ์ฝ”๋“œ ์„ค๋ช…

๐Ÿงพ naver_map_crawler.py

  • ํฌ๋กค๋Ÿฌ์˜ ๋ฉ”์ธ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

  • Selenium์œผ๋กœ ๋„ค์ด๋ฒ„์ง€๋„ ํŽ˜์ด์ง€๋ฅผ ์—ด๊ณ , ์Œ์‹์  ๋ฆฌ์ŠคํŠธ/์ƒ์„ธ์ •๋ณด๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ ์š”์†Œ ๋ณ„ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ๋ฐ์ดํ„ฐ ์ •์ œ ๋กœ์ง์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงญ geocoding.py

  • ์นด์นด์˜ค ์ง€๋„ REST API๋ฅผ ํ™œ์šฉํ•œ ์ฃผ์†Œ โ†’ ์ขŒํ‘œ(์œ„๋„, ๊ฒฝ๋„) ๋ณ€ํ™˜์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ํ™˜๊ฒฝ๋ณ€์ˆ˜์—์„œ API๋ฅผ ์ž๋™์œผ๋กœ ์ฝ์–ด์™€ ๋ณด์•ˆ์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ–ฑ๏ธ scroll_utils.py

  • ๋„ค์ด๋ฒ„์ง€๋„์™€ ๊ฐ™์ด ๋™์ ์œผ๋กœ ๋กœ๋”ฉ๋˜๋Š” ํŽ˜์ด์ง€์—์„œ ์Šคํฌ๋กค ์ž๋™ํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌ์ŠคํŠธ/์ƒ์„ธํŽ˜์ด์ง€ ๋“ฑ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋งž๋Š” ์Šคํฌ๋กค ํ•จ์ˆ˜๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.


๐Ÿ”Ž focus_utils.py

  • ๋„ค์ด๋ฒ„์ง€๋„ ๋‚ด ์Œ์‹์  ๋ฆฌ์ŠคํŠธ/์ƒ์„ธ ์ •๋ณด iframe ํฌ์ปค์Šค ์Šค์œ„์นญ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • ํฌ๋กค๋ง ์ฝ”๋“œ์—์„œ iframe ์ „ํ™˜์ด ํ•„์š”ํ•œ ๊ตฌ๊ฐ„์— importํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.



๐Ÿš€ ์‹คํ–‰ ๋ฐฉ๋ฒ•

  1. ํ•„์š” ํŒจํ‚ค์ง€ ์„ค์น˜

    pip install -r requirements.txt
  2. ์นด์นด์˜ค REST API ํ‚ค ๋ฐœ๊ธ‰ ํ›„ .env ํŒŒ์ผ์— ๋“ฑ๋ก

    KAKAO_REST_API_KEY=๋ฐœ๊ธ‰๋ฐ›์€_ํ‚ค
  3. ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

    python naver_map_crawler.py
  4. ์—‘์…€ ํŒŒ์ผ ํ™•์ธ

    ์—‘์…€ ์ถœ๋ ฅ ๊ฒฐ๊ณผ
    • ์‹คํ–‰ ํด๋” (๋˜๋Š” ๋ณ„๋„ ์ง€์ • ๊ฒฝ๋กœ)์— ๊ฒฐ๊ณผ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.


via. @hansololiviakimใ€€|ใ€€Last Updated. 2025-06-17

About

๐Ÿ—บ๏ธ ํ‚ค๋ง ๋„ค์ด๋ฒ„์ง€๋„ ๋‹น์‚ฐ ์Œ์‹์  ํฌ๋กค๋Ÿฌ

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages