bauta문서

Python·Node.js 패키지

bautabrowser 패키지로 Python이나 Node.js에서 페르소나를 실행합니다.

bautabrowser 패키지는 코드에서 페르소나를 실행합니다. launch()는 이 머신의 게이트웨이에 연결하거나 직접 시작하고, 페르소나를 만들어 CDP로 연결합니다. 나머지 Playwright나 Puppeteer 코드는 그대로입니다.

설치

pip install bautabrowser
npm install bautabrowser playwright-core      # 또는 puppeteer-core

처음 launch()를 호출하면 bauta를 ~/.bauta/bin에 내려받고, 릴리스의 서명된 SHA256SUMS와 대조합니다. 터미널에서는 이어서 bauta setup을 실행해 무료 계정을 안내하고, 터미널이 없으면 무료 플랜(세션 1개)을 활성화합니다.

이미 있는 bauta를 쓰려면 BAUTA_BIN을 설정합니다. 직접 설치할 수도 있습니다.

curl -fsSL https://bauta.dev/install.sh | bash

실행

from bautabrowser import launch

browser = launch(proxy="http://user:pass@host:port", humanize=True)
page = browser.new_page()
page.goto("https://example.com")
browser.close()
const { launch } = require("bautabrowser");      // import { launch } from "bautabrowser"도 됩니다

const browser = await launch({ proxy: "http://user:pass@host:port", humanize: true });
const page = await browser.newPage();
await page.goto("https://example.com");
await browser.close();

launch()는 페르소나에 연결된 Playwright Browser를 돌려줍니다. bautabrowser/puppeteer에서는 같은 옵션으로 Puppeteer Browser를 돌려줍니다(Puppeteer 연결).

기기 고르기

기본적으로는 bauta 내장 풀에서 뽑은 데스크톱 기기를 씁니다. args에 --fingerprint-platform=macos를 주면 macOS 기기를 뽑습니다. 또는 persona로 내장 페르소나의 이름이나 페르소나 파일을 넘깁니다.

browser = launch(args=["--fingerprint-platform=macos"])   # 풀에서 뽑은 macOS 기기
browser = launch(persona="win-intel")                      # 내장 페르소나
browser = launch(persona="/abs/path/shop.json")            # 페르소나 파일

정체성 유지

name 없이 실행하면 아무것도 남기지 않는 새 정체성을 받습니다. name을 주거나 args에 --fingerprint=12345를 주면, 실행할 때마다 같은 정체성, 같은 기기입니다.

browser = launch(name="shop")
browser = launch(args=["--fingerprint=12345"])

쿠키와 저장소 유지

launch_persistent_context(Node.js에서는 launchPersistentContext)는 페르소나의 BrowserContext를 돌려주며, 쿠키와 저장소가 실행 사이에 유지됩니다.

from bautabrowser import launch_persistent_context

context = launch_persistent_context("shop", humanize=True)
page = context.new_page()
page.goto("https://example.com")
context.close()
const { launchPersistentContext } = require("bautabrowser");

const context = await launchPersistentContext("shop", { humanize: true });
const page = await context.newPage();
await page.goto("https://example.com");
await context.close();

Puppeteer에서는 launch({ name: "shop", ephemeral: false })를 씁니다.

Python 비동기

launch_async와 launch_persistent_context_async는 같은 기능을 Playwright의 비동기 API로 제공합니다.

import asyncio
from bautabrowser import launch_async

async def main():
    browser = await launch_async(humanize=True)
    page = await browser.new_page()
    await page.goto("https://example.com")
    await browser.close()

asyncio.run(main())

옵션

PythonNode.js하는 일
personapersona내장 페르소나의 이름이나 페르소나 파일. 없으면 bauta 내장 풀의 데스크톱 기기를 씁니다.
namename실행할 때마다 같은 정체성, 같은 기기. 없으면 아무것도 남기지 않는 새 정체성입니다.
argsargs--fingerprint-platform=macos는 풀에서 macOS 기기를 뽑고, --fingerprint=12345는 name처럼 하나의 정체성을 유지합니다.
proxyproxy페르소나의 프록시. 예: http://user:pass@host:port (프록시 사용).
timezone, localetimezone, locale페르소나의 시간대와 로캘. 프록시가 있으면 둘 다 주지 않는 한 프록시 출구 위치를 따릅니다.
humanizehumanize클릭과 타이핑이 사람 손처럼 움직입니다.
requestsrequests프록시 바이트를 덜 쓰는 요청 규칙(프록시 트래픽 절약).
block_third_party_cookiesblockThirdPartyCookiesChrome 설정에서 "서드 파티 쿠키 차단"을 고른 사람처럼 서드파티 쿠키를 차단합니다. 주지 않으면 Chrome 기본값대로 허용합니다.
headlessheadless켜면(기본값) 게이트웨이의 창이 가상 디스플레이에 머물고, 끄면 내 디스플레이에 열립니다. 호출이 게이트웨이를 시작할 때 적용됩니다.
gatewaygateway다른 곳에서 실행 중인 게이트웨이. 예: 컨테이너의 http://127.0.0.1:9222. 페르소나는 그쪽에서 만듭니다.
extension_pathsextensionPaths페르소나의 브라우저가 불러올 압축 해제된 확장 프로그램. 이런 페르소나는 브라우저를 따로 씁니다.
pluginplugin페르소나의 모든 페이지가 실행하는 네이티브 플러그인(네이티브 플러그인).

페르소나 엔드포인트 얻기

endpoint(...)는 다른 CDP 클라이언트를 위해 페르소나의 CDP URL을 돌려줍니다.

from bautabrowser import endpoint

url = endpoint(name="shop")
const { endpoint } = require("bautabrowser");

const url = await endpoint({ name: "shop" });

환경 변수

변수하는 일
BAUTA_BIN패키지가 쓸, 이미 있는 bauta.
BAUTA_GATEWAYgateway 옵션처럼, 다른 곳에서 실행 중인 게이트웨이.

다음

이 페이지 내용