πŸ“‰ μ›Ή 데이터, λ‹Ήμ‹ μ˜ μ†μ•ˆμ—: μŠ€ν¬λž˜ν•‘μ˜ μ§„μ •ν•œ κ°€μΉ˜

ν˜„λŒ€ μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§ μ„Έκ³„μ—μ„œ λ°μ΄ν„°λŠ” λ‹¨μˆœν•œ μ—°λ£Œκ°€ μ•„λ‹Œ, AI의 섀계도와 κ°™μŠ΅λ‹ˆλ‹€. λ§€μ΄ˆλ§ˆλ‹€ μƒμ„±λ˜λŠ” λ°©λŒ€ν•œ μ–‘μ˜ 온라인 정보 μ†μ—μ„œ κ°€μΉ˜ μžˆλŠ” 데이터λ₯Ό μΆ”μΆœν•˜λŠ” λŠ₯λ ₯은 κ°œλ°œμžμ—κ²Œ ν•„μˆ˜μ μΈ 무기가 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 κ°•μ˜λŠ” 파이썬(Python) κ³Ό μžλ°”μŠ€ν¬λ¦½νŠΈ(JavaScript) λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹¨μˆœν•œ μŠ€ν¬λ¦½νŠΈλΆ€ν„° ν”„λ‘œλ•μ…˜ 레벨의 ν’€μŠ€νƒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κΉŒμ§€ κ΅¬μΆ•ν•˜λŠ” 과정을 λ‹€λ£Ήλ‹ˆλ‹€. 특히, Evomi의 κ°•λ ₯ν•œ 인프라λ₯Ό 톡해 봇 감지 λ©”μ»€λ‹ˆμ¦˜μ„ μš°νšŒν•˜κ³ , Playwright, Cheerio, Beautiful Soup 같은 μ΅œμ‹  도ꡬ듀을 ν™œμš©ν•˜μ—¬ 데이터λ₯Ό κ΅¬μ‘°ν™”ν•˜κ³  μ €μž₯ν•˜λŠ” 방법을 μ‹¬μΈ΅μ μœΌλ‘œ ν•™μŠ΅ν•©λ‹ˆλ‹€.

μ°¨μΌλ“œλΌμ΄ν”„ 앑상 칼슘 λ§ˆκ·Έλ„€μŠ˜ μ˜€λ Œμ§€λ§›, 473ml, 1개 πŸš€ μ›Ή μŠ€ν¬λž˜ν•‘μ˜ ν•œκ³„λ₯Ό λŒνŒŒν•˜μ„Έμš”! Evomi의 κ°•λ ₯ν•œ Scraper API와 ν”„λ‘μ‹œ μ†”λ£¨μ…˜μœΌλ‘œ μ•„λ§ˆμ‘΄, λΆ€ν‚Ήλ‹·μ»΄ λ“± κ³ κΈ‰ νƒ€κ²Ÿμ˜ 데이터λ₯Ό μ†μ‰½κ²Œ μˆ˜μ§‘ν•˜μ„Έμš”. μ§€κΈˆ 무료 μ²΄ν—˜μ„ μ‹œμž‘ν•΄ λ³΄μ„Έμš”! μ°¨μΌλ“œλΌμ΄ν”„ 앑상 칼슘 λ§ˆκ·Έλ„€μŠ˜ μ˜€λ Œμ§€λ§›, 473ml, 1개

πŸ› οΈ 1λΆ€: μŠ€ν¬λž˜ν•‘μ˜ 첫걸음 - 도ꡬ와 ν™˜κ²½ μ„€μ •

본격적인 κ°œλ°œμ— μ•žμ„œ, 효율적인 μŠ€ν¬λž˜ν•‘μ„ μœ„ν•œ κΈ°λ³Έ ν™˜κ²½μ„ κ΅¬μΆ•ν•©λ‹ˆλ‹€.

1.1 가상 ν™˜κ²½ 및 νŒ¨ν‚€μ§€ μ„€μΉ˜

ν”„λ‘œμ νŠΈ κ°„ μ˜μ‘΄μ„± μΆ©λŒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ 가상 ν™˜κ²½(Virtual Environment) 을 μƒμ„±ν•©λ‹ˆλ‹€. 이후 requests, beautifulsoup4, python-dotenv, playwright λ“± 핡심 라이브러리λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€. PlaywrightλŠ” Chromium, Firefox λ“± μ‹€μ œ λΈŒλΌμš°μ €λ₯Ό μžλ™ν™”ν•˜μ—¬ 동적 μ›Ήμ‚¬μ΄νŠΈ μŠ€ν¬λž˜ν•‘μ— ν•„μˆ˜μ μž…λ‹ˆλ‹€.

1.2 νƒ€κ²Ÿ μ›Ήμ‚¬μ΄νŠΈ 뢄석과 첫 번째 μŠ€ν¬λž˜ν•‘ μ‹œλ„

κ°•μ˜μ—μ„œλŠ” Booking.com, Indeed.com, Amazon.com μ„Έ κ°€μ§€ κ³ λ‚œμ΄λ„ νƒ€κ²Ÿμ„ μ„ μ •ν•©λ‹ˆλ‹€. 각 μ‚¬μ΄νŠΈλŠ” κ°•λ ₯ν•œ 봇 감지(bot detection) μ‹œμŠ€ν…œμ„ κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€. λ¨Όμ € ν‘œμ€€ Playwrightλ₯Ό μ‚¬μš©ν•˜μ—¬ μŠ€ν¬λž˜ν•‘μ„ μ‹œλ„ν•˜κ³ , HTTP 403(Forbidden) λ˜λŠ” 503(Service Unavailable) 였λ₯˜μ™€ 같은 차단 상황을 직접 κ²½ν—˜ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 일반적인 λ°©λ²•μ˜ ν•œκ³„λ₯Ό λͺ…ν™•νžˆ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.

Server racks representing the backend infrastructure for data storage Product Usage Scenario

βš”οΈ 2λΆ€: 봇 감지 우회 μ „λž΅ - Evomi μ„œλΉ„μŠ€μ˜ ν™œμš©

ν‘œμ€€ λ°©μ‹μ˜ μ‹€νŒ¨λ₯Ό ν™•μΈν•œ ν›„, Evomi의 μ „λ¬Έ μ„œλΉ„μŠ€λ₯Ό 톡해 μž₯벽을 λŒνŒŒν•©λ‹ˆλ‹€.

2.1 Scraper API와 Scraping Browser

  • Evomi Scraper API: HTTP POST μš”μ²­μ„ 톡해 νƒ€κ²Ÿ URL을 μ „μ†‘ν•˜λ©΄ Evomi μ„œλ²„κ°€ λͺ¨λ“  봇 감지 λ‘œμ§μ„ μ²˜λ¦¬ν•˜κ³  κΉ¨λ—ν•œ HTML을 λ°˜ν™˜ν•©λ‹ˆλ‹€. Indeed.com μŠ€ν¬λž˜ν•‘μ—μ„œ 403 였λ₯˜λ₯Ό κ·Ήλ³΅ν•˜κ³  HTTP 200 성곡 응닡을 λ°›λŠ” 과정을 μ‹œμ—°ν•©λ‹ˆλ‹€.
  • Evomi Scraping Browser: WSS(WebSocket Secure) ν”„λ‘œν† μ½œμ„ 톡해 원격 λΈŒλΌμš°μ €λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€. Booking.com의 경우, ν‘œμ€€ PlaywrightλŠ” νƒ€μž„μ•„μ›ƒμœΌλ‘œ μ‹€νŒ¨ν•˜μ§€λ§Œ, Scraping Browserλ₯Ό μ‚¬μš©ν•˜λ©΄ μ‹€μ œ μ‚¬μš©μžμ²˜λŸΌ ν–‰λ™ν•˜μ—¬ 데이터λ₯Ό μ„±κ³΅μ μœΌλ‘œ μΆ”μΆœν•©λ‹ˆλ‹€.

2.2 κ³ κΈ‰ μ „λž΅: ν”„λ‘μ‹œ λ‘œν…Œμ΄μ…˜ (Core Residential Plan)

Amazon.com은 κ°€μž₯ κΉŒλ‹€λ‘œμš΄ νƒ€κ²Ÿ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. Evomi의 Core Residential Plan을 μ‚¬μš©ν•˜μ—¬ 각 μš”μ²­λ§ˆλ‹€ λ‹€λ₯Έ μ‹€μ œ 주거용 IP μ£Όμ†Œλ₯Ό ν• λ‹Ήλ°›λŠ” ν”„λ‘μ‹œ λ‘œν…Œμ΄μ…˜(Proxy Rotation) 을 κ΅¬ν˜„ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 Amazon의 μ •κ΅ν•œ 차단 λ©”μ»€λ‹ˆμ¦˜μ„ μš°νšŒν•˜κ³ , λŒ€κ·œλͺ¨ 데이터 μˆ˜μ§‘μ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

μŠ€ν¬λž˜ν•‘ λŒ€μƒμ‚¬μš© κΈ°μˆ μ£Όμš” κ²°κ³ΌHTTP μƒνƒœ μ½”λ“œ
Booking.comν‘œμ€€ Playwright차단 (νƒ€μž„μ•„μ›ƒ)202 (데이터 μ—†μŒ)
Booking.comEvomi Scraping Browser성곡 (ν˜Έν…”λͺ…, 평점 μΆ”μΆœ)202 (데이터 있음)
Indeed.comν‘œμ€€ Playwrightν•˜λ“œ 블둝403 Forbidden
Indeed.comEvomi Scraper API성곡 (μ±„μš© 정보 μΆ”μΆœ)200 OK
Amazon.comν‘œμ€€ Playwright차단503 Service Unavailable
Amazon.comEvomi Core Residential성곡 (λ„μ„œ 정보 μΆ”μΆœ)200 OK

2.3 핡심 도ꡬ: Cheerio와 Beautiful Soup

Cheerio(Node.js)와 Beautiful Soup(Python)은 μ„œλ²„μ—μ„œ λ°˜ν™˜λœ HTML을 νŒŒμ‹±ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. CSS μ„ νƒμžλ₯Ό ν™œμš©ν•˜μ—¬ μ›ν•˜λŠ” 데이터(제λͺ©, 가격, 평점 λ“±)λ₯Ό μ •ν™•νžˆ μΆ”μΆœν•˜κ³  κ΅¬μ‘°ν™”λœ λ°°μ—΄λ‘œ λ³€ν™˜ν•˜λŠ” 방법을 λ°°μ›λ‹ˆλ‹€.

Data analysis dashboard showing scraped data trends and charts Smart Life Concept

πŸ’Ύ 3λΆ€: MERN ν’€μŠ€νƒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕

이둠을 λ„˜μ–΄ μ‹€μ œ λ™μž‘ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“­λ‹ˆλ‹€. MongoDB, Express, React, Node.js (MERN) μŠ€νƒμ„ 기반으둜 ν•˜λ©°, μŠ€ν¬λž˜ν•‘ν•œ 데이터λ₯Ό μ €μž₯ν•˜κ³  μ‘°νšŒν•˜λŠ” μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•©λ‹ˆλ‹€.

  • λ°±μ—”λ“œ (Node.js & Express): TIOBE Index와 Amazon 데이터λ₯Ό μŠ€ν¬λž˜ν•‘ν•˜λŠ” API μ—”λ“œν¬μΈνŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. λ°μ΄ν„°λŠ” MongoDB에 μΊμ‹±λ˜μ–΄ λ™μΌν•œ μš”μ²­ μ‹œ λΉ λ₯Έ 응닡을 μ œκ³΅ν•©λ‹ˆλ‹€.
  • ν”„λ‘ νŠΈμ—”λ“œ (React): μ‚¬μš©μž μΉœν™”μ μΈ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 검색어λ₯Ό μž…λ ₯ν•˜κ³ , μŠ€ν¬λž˜ν•‘λœ 데이터λ₯Ό ν‘œ ν˜•νƒœλ‘œ μ‹œκ°ν™”ν•©λ‹ˆλ‹€. μ‹€μ‹œκ°„ λ‘œλ”© 인디케이터와 λ°˜μ‘ν˜• λ””μžμΈμ„ μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

πŸ“… 정보 기쀀일: 2024-05-24

Cloud computing network symbolizing scalable data collection Hardware Related Image

λ³Έ μ½˜ν…μΈ λŠ” μ‹ λ’°ν•  수 μžˆλŠ” 좜처λ₯Ό λ°”νƒ•μœΌλ‘œ AI 도ꡬλ₯Ό ν™œμš©ν•˜μ—¬ μ΄ˆμ•ˆμ΄ μž‘μ„±λ˜μ—ˆμœΌλ©°, νŽΈμ§‘μžμ˜ κ²€ν† λ₯Ό 거쳐 λ°œν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ „λ¬Έκ°€μ˜ 쑰언을 λŒ€μ²΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.