Python·Node.js 패키지
bautabrowser 패키지로 Python이나 Node.js에서 페르소나를 실행합니다.
bautabrowser 패키지는 코드에서 페르소나를 실행합니다. launch()는 이 머신의 게이트웨이에 연결하거나 직접
시작하고, 페르소나를 만들어 CDP로 연결합니다. 나머지 Playwright나 Puppeteer 코드는 그대로입니다.
설치
pip install bautabrowsernpm 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())옵션
| Python | Node.js | 하는 일 |
|---|---|---|
persona | persona | 내장 페르소나의 이름이나 페르소나 파일. 없으면 bauta 내장 풀의 데스크톱 기기를 씁니다. |
name | name | 실행할 때마다 같은 정체성, 같은 기기. 없으면 아무것도 남기지 않는 새 정체성입니다. |
args | args | --fingerprint-platform=macos는 풀에서 macOS 기기를 뽑고, --fingerprint=12345는 name처럼 하나의 정체성을 유지합니다. |
proxy | proxy | 페르소나의 프록시. 예: http://user:pass@host:port (프록시 사용). |
timezone, locale | timezone, locale | 페르소나의 시간대와 로캘. 프록시가 있으면 둘 다 주지 않는 한 프록시 출구 위치를 따릅니다. |
humanize | humanize | 클릭과 타이핑이 사람 손처럼 움직입니다. |
requests | requests | 프록시 바이트를 덜 쓰는 요청 규칙(프록시 트래픽 절약). |
block_third_party_cookies | blockThirdPartyCookies | Chrome 설정에서 "서드 파티 쿠키 차단"을 고른 사람처럼 서드파티 쿠키를 차단합니다. 주지 않으면 Chrome 기본값대로 허용합니다. |
headless | headless | 켜면(기본값) 게이트웨이의 창이 가상 디스플레이에 머물고, 끄면 내 디스플레이에 열립니다. 호출이 게이트웨이를 시작할 때 적용됩니다. |
gateway | gateway | 다른 곳에서 실행 중인 게이트웨이. 예: 컨테이너의 http://127.0.0.1:9222. 페르소나는 그쪽에서 만듭니다. |
extension_paths | extensionPaths | 페르소나의 브라우저가 불러올 압축 해제된 확장 프로그램. 이런 페르소나는 브라우저를 따로 씁니다. |
plugin | plugin | 페르소나의 모든 페이지가 실행하는 네이티브 플러그인(네이티브 플러그인). |
페르소나 엔드포인트 얻기
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_GATEWAY | gateway 옵션처럼, 다른 곳에서 실행 중인 게이트웨이. |