본문으로 건너뛰기

차단 방지하기

스크래퍼가 차단되는 데는 여러 가지 이유가 있습니다. 주요한 두 가지 이유를 살펴보겠습니다. 첫 번째는 잘못된 IP 주소나 차단된 IP 주소입니다. 이 주제에 대해서는 프록시 관리 가이드에서 자세히 알아볼 수 있습니다. 두 번째는 브라우저 지문(또는 시그니처)으로, 이 가이드에서 자세히 다루도록 하겠습니다. 차단 방지에 대한 더 깊은 이론적 이해와 유용한 팁을 얻고 싶다면 Apify Academy 안티스크래핑 과정을 확인해보세요.

브라우저 지문은 브라우저의 특성과 중요한 기능들을 모아놓은 것으로, 우리의 브라우저가 봇인지 실제 사용자인지 판단하는 데 사용됩니다. 대부분의 브라우저는 이러한 고유한 특성을 가지고 있어서 웹사이트가 서로 다른 IP 주소를 사용하더라도 브라우저를 추적할 수 있게 합니다. 이것이 브라우저 기반 스크래핑을 할 때 브라우저 지문을 변경해야 하는 주된 이유입니다. 이를 통해 차단될 확률을 크게 줄일 수 있습니다.

브라우저 지문 사용하기

브라우저 지문을 변경하는 것은 번거로운 작업일 수 있습니다. 다행히도 Crawlee는 별도의 설정 없이 이 기능을 제공합니다 - 지문 사용은 기본적으로 활성화되어 있으며 PlaywrightCrawlerPuppeteerCrawler에서 사용할 수 있습니다. 따라서 이러한 크롤러를 사용하여 스크래퍼를 만들 때마다 기본 브라우저와 운영 체제에 대한 지문이 자동으로 생성됩니다.

브라우저 지문 커스터마이징

특정 상황에서는 사용되는 지문을 제한하고 싶을 수 있습니다 - 예를 들어 특정 운영 체제, 로케일 또는 브라우저를 지정하는 경우입니다. Crawlee에서는 이것도 가능합니다 - 크롤러의 생성 알고리즘을 특정 브라우저 버전 등에 맞게 커스터마이징할 수 있습니다. 아래 예제를 살펴보겠습니다:

import { PlaywrightCrawler } from 'crawlee';
import { BrowserName, DeviceCategory, OperatingSystemsName } from '@crawlee/browser-pool';

const crawler = new PlaywrightCrawler({
browserPoolOptions: {
useFingerprints: true, // 이것은 기본값입니다
fingerprintOptions: {
fingerprintGeneratorOptions: {
browsers: [
{
name: BrowserName.edge,
minVersion: 96,
},
],
devices: [DeviceCategory.desktop],
operatingSystems: [OperatingSystemsName.windows],
},
},
},
// ...
});

브라우저 지문 비활성화하기

반대로 브라우저 지문 사용을 완전히 비활성화하고 싶을 때도 있습니다. Crawlee에서는 이 작업도 간단합니다. browserPoolOptionsuseFingerprints 옵션을 false로 설정하기만 하면 됩니다:

import { PlaywrightCrawler } from 'crawlee';

const crawler = new PlaywrightCrawler({
browserPoolOptions: {
useFingerprints: false,
},
// ...
});

관련 링크