π μΉ λ°μ΄ν°, λΉμ μ μμμ: μ€ν¬λνμ μ§μ ν κ°μΉ
νλ μννΈμ¨μ΄ μμ§λμ΄λ§ μΈκ³μμ λ°μ΄ν°λ λ¨μν μ°λ£κ° μλ, AIμ μ€κ³λμ κ°μ΅λλ€. λ§€μ΄λ§λ€ μμ±λλ λ°©λν μμ μ¨λΌμΈ μ 보 μμμ κ°μΉ μλ λ°μ΄ν°λ₯Ό μΆμΆνλ λ₯λ ₯μ κ°λ°μμκ² νμμ μΈ λ¬΄κΈ°κ° λμμ΅λλ€. μ΄ κ°μλ νμ΄μ¬(Python) κ³Ό μλ°μ€ν¬λ¦½νΈ(JavaScript) λ₯Ό μ¬μ©νμ¬ λ¨μν μ€ν¬λ¦½νΈλΆν° νλ‘λμ
λ 벨μ νμ€ν μ ν리μΌμ΄μ
κΉμ§ ꡬμΆνλ κ³Όμ μ λ€λ£Ήλλ€. νΉν, Evomiμ κ°λ ₯ν μΈνλΌλ₯Ό ν΅ν΄ λ΄ κ°μ§ λ©μ»€λμ¦μ μ°ννκ³ , Playwright, Cheerio, Beautiful Soup κ°μ μ΅μ λꡬλ€μ νμ©νμ¬ λ°μ΄ν°λ₯Ό ꡬ쑰ννκ³ μ μ₯νλ λ°©λ²μ μ¬μΈ΅μ μΌλ‘ νμ΅ν©λλ€.
π οΈ 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) μ€λ₯μ κ°μ μ°¨λ¨ μν©μ μ§μ κ²½νν©λλ€. μ΄λ₯Ό ν΅ν΄ μΌλ°μ μΈ λ°©λ²μ νκ³λ₯Ό λͺ
νν μ΄ν΄ν μ μμ΅λλ€.

βοΈ 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.com | Evomi Scraping Browser | μ±κ³΅ (νΈν λͺ , νμ μΆμΆ) | 202 (λ°μ΄ν° μμ) |
| Indeed.com | νμ€ Playwright | νλ λΈλ‘ | 403 Forbidden |
| Indeed.com | Evomi Scraper API | μ±κ³΅ (μ±μ© μ 보 μΆμΆ) | 200 OK |
| Amazon.com | νμ€ Playwright | μ°¨λ¨ | 503 Service Unavailable |
| Amazon.com | Evomi Core Residential | μ±κ³΅ (λμ μ 보 μΆμΆ) | 200 OK |
2.3 ν΅μ¬ λꡬ: Cheerioμ Beautiful Soup
Cheerio(Node.js)μ Beautiful Soup(Python)μ μλ²μμ λ°νλ HTMLμ νμ±νλ λ° μ¬μ©λ©λλ€. CSS μ νμλ₯Ό νμ©νμ¬ μνλ λ°μ΄ν°(μ λͺ©, κ°κ²©, νμ λ±)λ₯Ό μ νν μΆμΆνκ³ κ΅¬μ‘°νλ λ°°μ΄λ‘ λ³ννλ λ°©λ²μ λ°°μλλ€.

πΎ 3λΆ: MERN νμ€ν μ ν리μΌμ΄μ ꡬμΆ
μ΄λ‘ μ λμ΄ μ€μ λμνλ μ ν리μΌμ΄μ μ λ§λλλ€. MongoDB, Express, React, Node.js (MERN) μ€νμ κΈ°λ°μΌλ‘ νλ©°, μ€ν¬λνν λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ‘°ννλ μμ€ν μ ꡬμΆν©λλ€.
- λ°±μλ (Node.js & Express):
TIOBE IndexμAmazonλ°μ΄ν°λ₯Ό μ€ν¬λννλ API μλν¬μΈνΈλ₯Ό μμ±ν©λλ€. λ°μ΄ν°λ MongoDBμ μΊμ±λμ΄ λμΌν μμ² μ λΉ λ₯Έ μλ΅μ μ 곡ν©λλ€. - νλ‘ νΈμλ (React): μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ κ²μμ΄λ₯Ό μ λ ₯νκ³ , μ€ν¬λνλ λ°μ΄ν°λ₯Ό ν ννλ‘ μκ°νν©λλ€. μ€μκ° λ‘λ© μΈλμΌμ΄ν°μ λ°μν λμμΈμ μ μ©νμ΅λλ€.
π μ 보 κΈ°μ€μΌ: 2024-05-24

