블로그로 돌아가기

포럼 및 게시판 데이터 수집: 프록시를 통한 차단 없이 데이터 수집 방법

포럼과 게시판에서 데이터 수집에 대한 완벽한 가이드: 프록시 선택, 회전 설정 및 Авито, forum.ru 등에서 크롤링 시 차단을 피하는 방법.

📅2026년 3월 7일
```html

포럼 및 광고 게시판에서 데이터 수집은 마케팅 전문가, 시장 분석가 및 비즈니스 소유자에게 매우 중요한 작업입니다. 경쟁업체의 가격 모니터링을 위한 Avito 파싱, 산업 포럼에서 연락처 수집, 전문 플랫폼에서 리뷰 분석 등 모든 작업은 하나의 문제로 귀결됩니다: 사이트는 자동 데이터 수집을 적극적으로 차단합니다. 이 기사에서는 프록시를 통해 안정적인 파싱을 설정하고 차단을 피하는 방법을 설명합니다.

포럼 및 광고 게시판이 파싱을 차단하는 이유

플랫폼 소유자들은 여러 가지 이유로 자신의 데이터를 보호합니다. 첫째, 대량 파싱은 서버에 부하를 주기 때문입니다 — 하나의 파서는 시간당 수천 개의 요청을 생성할 수 있으며, 이는 수백 명의 사용자가 동시에 사이트를 방문하는 것과 같습니다. 둘째, 수집된 데이터는 종종 경쟁업체에 의해 사용됩니다: Avito의 가격은 모니터링 시스템에 들어가고, 포럼의 연락처는 차가운 판매를 위한 데이터베이스에 들어갑니다.

현대의 보호 시스템은 여러 매개변수를 분석합니다: 하나의 IP에서의 요청 빈도, 행동 패턴(파서가 페이지를 너무 빠르고 연속적으로 열기), 브라우저 헤더, JavaScript의 존재 여부. 예를 들어, Avito는 다단계 보호를 사용합니다: User-Agent 확인, 쿠키 분석, 브라우저 지문 인식, 의심스러운 활동 시 CAPTCHA.

여러분이 추적될 수 있는 전형적인 징후는 다음과 같습니다:

  • 하나의 IP 주소 — 모든 요청이 하나의 IP에서 발생하면 즉시 차단됩니다.
  • 높은 요청 빈도 — 일반 사용자는 초당 10페이지를 열 수 없습니다.
  • 쿠키 및 JavaScript의 부재 — 간단한 스크립트는 JS를 실행하지 않으며 쿠키를 저장하지 않습니다.
  • 의심스러운 User-Agent — 오래된 브라우저 버전이나 헤더 불일치.
  • 페이지 순차적 탐색 — 파싱이 엄격하게 순서대로 진행되는 경우(페이지 1, 2, 3...)는 부자연스럽게 보입니다.

포럼 파싱에 적합한 프록시 종류

프록시 유형의 선택은 데이터 양, 예산 및 대상 사이트의 보호 수준에 따라 다릅니다. 세 가지 주요 옵션과 파싱에 대한 적용을 살펴보겠습니다.

프록시 유형 속도 사이트 신뢰도 가장 적합한 용도
데이터 센터 프록시 매우 높음 (100+ Mbps) 낮음 (쉽게 추적됨) 보호가 없는 작은 포럼, 아카이브 파싱
주거용 프록시 중간 (10-50 Mbps) 높음 (실제 가정용 IP) Avito, 대형 포럼, 보호가 있는 사이트
모바일 프록시 중간 (5-30 Mbps) 최고 (모바일 통신사 IP) 강력한 보호가 있는 플랫폼, 연락처 수집

데이터 센터 프록시 — 가장 저렴한 옵션으로 간단한 작업에 적합합니다. 만약 여러분이 작은 주제 포럼이나 심각한 보호가 없는 광고 게시판을 파싱해야 한다면, 이 정도면 충분합니다. 속도가 허용하는 한 시간당 수만 페이지를 처리할 수 있습니다. 그러나 Avito, YouDo, forum.ru 및 기타 대형 플랫폼은 이러한 IP를 빠르게 추적하여 차단합니다.

주거용 프록시 — 대부분의 작업에 대한 가격과 품질의 최적 균형입니다. 이는 사이트가 일반 방문자와 구별할 수 없는 실제 가정용 사용자 IP입니다. Avito, Yandex.Services, 대형 포럼을 파싱할 때는 표준 선택입니다. 중요한 점: 주거용 프록시는 일반적으로 트래픽에 대한 요금제로 판매되므로 요청을 최적화하세요 — 불필요한 이미지와 스크립트를 로드하지 마세요.

모바일 프록시 — 복잡한 경우에 대한 최대 신뢰성입니다. 모바일 통신사(IP, MTS, Beeline, Megafon)의 IP는 가장 높은 신뢰 수준을 가지며, 하나의 IP 뒤에는 수천 명의 실제 사용자가 있을 수 있습니다(기술 CGNAT). 강력한 보호가 있는 플랫폼이나 차단 위험 없이 중요한 데이터를 수집해야 할 때 사용하세요.

Avito 파싱: 특징 및 설정

Avito는 러시아 인터넷에서 가장 보호된 플랫폼 중 하나입니다. 안티파싱 시스템은 JavaScript 확인, 브라우저 지문 인식, 행동 분석, 의심스러운 경우 CAPTCHA를 포함합니다. 간단한 requests 스크립트는 작동하지 않으며, 세 번째 요청에서 빈 페이지나 CAPTCHA를 받게 됩니다.

Avito의 안정적인 파싱을 위한 필수 요소:

필수 구성 요소:
1. 5-10분마다 회전하는 주거용 또는 모바일 프록시
2. JavaScript를 실행하기 위한 헤드리스 브라우저(Selenium, Puppeteer, Playwright)
3. 최신 버전 Chrome의 현실적인 브라우저 헤더 및 User-Agent
4. 요청 간 지연: 페이지당 3-7초
5. 세션 간 쿠키 저장

전형적인 작업은 경쟁업체의 가격 모니터링입니다. 매일 여러분의 카테고리에서 광고를 수집하고 변화를 추적해야 합니다. 500-1000개의 광고가 있는 카테고리에는 약 50-100개의 요청이 필요합니다(페이지 매김 및 상품 카드 포함). 올바르게 설정하면 10-15분과 1-2GB의 주거용 프록시 트래픽이 소요됩니다.

Avito 파서를 위한 단계별 설정:

  1. 프록시를 확보하세요 — 회전하는 주거용 IP 풀을 주문하세요. 하루에 하나의 카테고리를 모니터링하려면 월 10-20GB의 트래픽이 충분합니다.
  2. 헤드리스 브라우저를 설정하세요 — Selenium 또는 Puppeteer를 사용하세요. 중요: 헤드리스 모드를 활성화하되, 탐지를 우회하기 위한 매개변수를 추가하세요 (window.navigator.webdriver = false).
  3. 브라우저에서 프록시를 설정하세요 — 브라우저를 시작할 때 프록시 데이터를 전달하세요. Selenium의 경우 --proxy-server 매개변수를 사용하고, Puppeteer의 경우 puppeteer.launch()의 args를 사용하세요.
  4. 현실적인 행동을 추가하세요 — 3-7초의 무작위 지연, 데이터 수집 전 페이지 스크롤, 마우스 이동(Selenium의 경우).
  5. 쿠키를 저장하세요 — 첫 번째 방문 후 쿠키를 저장하고 다음 세션에서 사용하세요. 이는 의심을 줄입니다.
  6. 정기적으로 IP를 변경하세요 — 5-10분마다 또는 20-30개의 요청마다 회전하세요. 모든 파싱에 하나의 IP를 사용하지 마세요.

초보자들이 저지르는 치명적인 실수는 너무 빠르게 파싱하는 것입니다. 프록시를 사용하더라도, 매초 페이지를 열면 시스템이 행동 패턴으로 봇을 추적합니다. 일반 사용자는 광고를 10-30초 동안 읽고, 아래로 스크롤하며, 검색으로 돌아갑니다. 여러분의 파서는 이를 모방해야 합니다: 지연, 스크롤, 때때로 인접 카테고리로 이동합니다.

포럼에서 데이터 수집: 전략 및 도구

포럼은 보호 수준에 따라 다릅니다. phpBB 또는 vBulletin에서 운영되는 오래된 포럼은 일반적으로 심각한 안티봇 보호가 없으며, 데이터 센터 프록시와 간단한 파서로 충분합니다. 현대 플랫폼(forum.ru, 전문 산업 포럼)은 Cloudflare 또는 자체 보호 시스템을 사용합니다.

포럼 파싱의 전형적인 작업:

  • 연락처 수집 — 사용자 서명 및 메시지에서 이메일, 전화번호, Telegram
  • 브랜드 언급 모니터링 — 여러분의 회사나 경쟁업체에 대한 리뷰 추적
  • 감정 분석 — 제품, 서비스, 산업 트렌드에 대한 의견 수집
  • 리드 검색 — 여러분의 문제 해결을 찾고 있는 사람들(예: 건설 포럼에서 계약자를 찾는 경우)

작은 포럼(10,000페이지 이하)의 경우, 준비된 도구인 Octoparse, ParseHub, WebHarvy를 사용할 수 있습니다. 이들은 시각적 인터페이스를 제공하며, 수집할 요소를 클릭하면 도구가 파서를 생성합니다. 설정에서 프록시, 지연을 지정하고 수집을 시작하세요.

대규모 프로젝트(수십만 페이지)의 경우, 맞춤형 파서가 필요합니다. 인기 있는 프레임워크: Scrapy (Python), Puppeteer (JavaScript), Playwright (모든 언어 지원). 이들은 탐색 논리, 오류 처리, 프록시 풀을 통한 분산 파싱을 유연하게 설정할 수 있습니다.

산업 포럼 파싱 전략 예시:

작업: 건설 포럼에서 전문가의 연락처 수집 (50,000 사용자, 500,000 메시지).

1. 50-100 IP 풀을 가진 주거용 프록시 사용
2. 사용자 목록(50,000 프로필)을 시간당 500 프로필의 속도로 파싱 (지연 7초)
3. 100 프로필마다 IP 변경 (12분마다)
4. 프로필에서 이메일, 웹사이트, 연락처가 포함된 서명 추출
5. 총 시간: 100시간 (연속 작업 4일)
6. 트래픽: 약 20-30GB의 주거용 프록시

중요한 점: 많은 포럼은 연락처나 숨겨진 섹션을 보기 위해 등록을 요구합니다. 미리 여러 계정을 생성하세요 (수동으로, 다른 IP로), 1-2주 동안 유지하고 몇 개의 메시지를 남기세요. 이러한 계정을 파싱에 사용하세요 — 인증된 사용자는 의심을 덜 받습니다.

IP 회전 및 세션 관리

올바른 IP 회전은 장기적으로 안정적인 파싱의 핵심입니다. 두 가지 주요 접근 방식이 있습니다: 시간에 따른 회전과 요청 수에 따른 회전입니다.

시간에 따른 회전: N분마다 IP를 변경합니다. 예측 가능성이 중요한 작업에 적합합니다. 예를 들어, Avito를 5분마다 파싱하면서 IP를 변경하면, 하나의 주소에서 요청 한도를 초과하지 않도록 보장됩니다. 단점: 파서가 중단되거나 느려지면 IP를 낭비하게 됩니다.

요청 수에 따른 회전: N 요청마다 IP를 변경합니다 (예: 20-50페이지마다). 프록시를 보다 효율적으로 사용할 수 있지만 정확한 계산이 필요합니다. 사이트가 IP당 시간당 100 요청을 제한하는 경우, 80 요청으로 회전을 설정하세요 — 오류에 대한 여유를 남겨두세요.

플랫폼 추천 회전 요청 간 지연
Avito 5-10분마다 또는 20-30 요청마다 3-7초
YouDo, Profi.ru 10-15분마다 또는 40-50 요청마다 4-8초
Cloudflare가 있는 포럼 15-20분마다 또는 60-80 요청마다 5-10초
간단한 포럼 (phpBB, vBulletin) 30-60분마다 또는 200-300 요청마다 2-5초

세션 관리: IP를 변경할 때, 세션(쿠키, localStorage)을 초기화할지 유지할지를 결정하세요. 인증된 파싱(포럼, 개인 계정)의 경우 세션을 유지하되 IP를 덜 자주 변경하세요 — 그렇지 않으면 사이트가 계정이 해킹되었다고 의심할 수 있습니다(다른 도시에서의 로그인). 공개 데이터(인증 없이 Avito)의 경우 IP 변경 시 모든 것을 초기화하세요 — 각 IP는 새로운 사용자처럼 보입니다.

고급 기술 — 스티키 세션(Sticky Sessions). 일부 프록시 제공업체는 IP를 10-30분 동안 "고정"할 수 있게 해줍니다. 하나의 IP를 얻고, 논리적 작업(예: Avito의 한 카테고리 파싱) 내에서 모든 요청을 수행한 후, 다음 카테고리를 위해 새로운 IP로 변경하세요. 이는 탐색 중 IP를 변경하는 것보다 더 자연스럽습니다.

프록시에 맞춘 인기 파서 설정

인기 있는 파싱 도구에서 프록시 설정을 살펴보겠습니다. 자체 파서를 작성하는 기술 전문가를 위한 예제입니다.

Scrapy (Python): 프록시 회전을 위한 미들웨어를 추가하세요. settings.py에 프록시 목록을 생성하고, 각 요청마다 자동 회전을 위한 RandomProxy 미들웨어를 사용하세요.

# settings.py
ROTATING_PROXY_LIST = [
    'http://user:pass@proxy1.example.com:8000',
    'http://user:pass@proxy2.example.com:8000',
    'http://user:pass@proxy3.example.com:8000',
]

DOWNLOADER_MIDDLEWARES = {
    'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

Puppeteer (JavaScript): 브라우저 시작 시 프록시를 전달하세요. 회전을 위해 프록시 풀을 생성하고 매번 새로운 시작 시 무작위로 선택하세요.

const puppeteer = require('puppeteer');

const proxyList = [
  'proxy1.example.com:8000',
  'proxy2.example.com:8000'
];

const proxy = proxyList[Math.floor(Math.random() * proxyList.length)];

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=${proxy}`,
    '--no-sandbox'
  ]
});

// 프록시 인증
const page = await browser.newPage();
await page.authenticate({
  username: 'user',
  password: 'pass'
});

Selenium (Python): Chrome 옵션을 통해 프록시를 설정하세요. HTTP 인증을 위해 확장 프로그램을 사용하거나 URL에 자격 증명을 전달하세요.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://user:pass@proxy.example.com:8000')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-blink-features=AutomationControlled')

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.avito.ru/moskva/kvartiry')

준비된 파서 (Octoparse, ParseHub): 작업 설정에서 "Proxy" 또는 "IP Rotation" 섹션을 찾으세요. host:port:user:pass 형식으로 프록시 목록을 추가하거나 회전을 위한 API URL을 지정하세요. "각 요청마다 회전" 또는 "N분마다 회전" 옵션을 활성화하세요.

안티봇 보호 우회 기술

프록시는 IP 차단 문제를 해결하지만, 현대의 보호 시스템은 수십 가지 다른 매개변수를 분석합니다. 다음은 안티봇 시스템을 우회하기 위한 종합적인 조치입니다.

1. 현실적인 User-Agent 및 헤더: 최신 브라우저 버전을 사용하세요. 현재 Chrome 120이 출시되었는데 Chrome 90의 User-Agent를 설정하지 마세요. 헤더의 일치를 확인하세요: User-Agent가 "Windows"라고 말하고 sec-ch-ua-platform 헤더가 "Linux"라고 말하면 추적됩니다.

# 2024년을 위한 좋은 헤더 세트
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
    'Accept-Encoding': 'gzip, deflate, br',
    'DNT': '1',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1'
}

2. 헤드리스 브라우저 탐지 우회: Selenium 및 Puppeteer는 기본적으로 자동화의 징후를 가지고 있습니다(navigator.webdriver 속성 = true). 이러한 징후를 숨기기 위해 스텔스 플러그인이나 패치를 사용하세요.

// Puppeteer 스텔스 플러그인
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const browser = await puppeteer.launch({headless: true});

3. JavaScript 지문 인식: 사이트는 브라우저의 지문을 수집합니다(캔버스 지문, WebGL, 글꼴, 화면 해상도). 이러한 매개변수를 무작위화하거나 실제 브라우저 프로필을 사용하여 우회하세요. 도구: FingerprintJS Randomizer, Multilogin(준비된 프로필을 가진 플랫폼).

4. CAPTCHA 처리: CAPTCHA가 나타나면 인식 서비스를 사용하세요: 2Captcha, Anti-Captcha, CapMonster. 이들은 1000 CAPTCHA당 $1-3입니다. API를 통한 통합은 10-15분이 소요됩니다. reCAPTCHA v2/v3에 대한 준비된 라이브러리가 있습니다.

5. 행동 패턴: 행동에 무작위성을 추가하세요. 페이지를 정확히 5초마다 열지 마세요 — 3초에서 8초 사이로 변동하세요. 때때로 30-60초 동안의 일시 정지를 하여 긴 페이지를 읽는 것처럼 모방하세요. 포럼에서는 때때로 사용자 프로필로 이동하고 주제만 수집하지 마세요.

중요: 사이트의 보호가 복잡할수록 파서는 더 느리게 작동해야 합니다. Avito의 경우 최적의 속도는 시간당 500-1000 페이지입니다. 더 많은 속도가 필요하다면, 서로 다른 프록시 풀을 가진 여러 개의 병렬 파서를 실행하되, 각 파서는 느리고 자연스럽게 작동해야 합니다.

결론

포럼 및 광고 게시판 파싱은 종합적인 접근이 필요한 작업입니다. 프록시는 IP 차단 문제를 해결하지만, 안정적인 작업을 위해서는 올바른 헤더, 현실적인 행동, 지문 인식 우회 및 적절한 회전이 필요합니다. 프록시 유형의 선택은 대상 사이트의 보호 수준에 따라 다릅니다: 간단한 포럼의 경우 데이터 센터가 충분하고, Avito 및 대형 플랫폼의 경우 주거용 또는 모바일 IP가 필요합니다.

성공적인 파싱의 핵심 원칙: 느리고 자연스럽게, 정기적인 IP 회전, 복잡한 사이트를 위한 헤드리스 브라우저 사용, 필요 시 CAPTCHA 처리. 속도를 쫓지 마세요 — 한 달 동안 안정적으로 시간당 500페이지를 수집하는 것이, 시간당 5000페이지를 수집하고 이틀 만에 차단되는 것보다 낫습니다.

Avito, YouDo, 대형 포럼 또는 심각한 보호가 있는 플랫폼을 파싱할 계획이라면, 주거용 프록시를 사용하는 것이 좋습니다 — 이들은 신뢰성과 비용의 최적 균형을 제공합니다. 특히 보호가 강한 플랫폼이나 중요한 데이터를 수집해야 할 경우, 모바일 프록시가 가장 높은 신뢰 수준을 제공합니다.

```