webbrowser — 편리한 웹 브라우저 컨트롤러

webbrowser — 편리한 웹 브라우저 컨트롤러

webbrowser 모듈은 사용자에게 웹 기반 문서를 표시할 수 있는 고수준 인터페이스를 제공해요. 대부분의 경우 이 모듈의 open() 함수를 호출하는 것으로 충분해요.

Unix에서는 X11에서 그래픽 브라우저가 선호되지만, 그래픽 브라우저를 사용할 수 없거나 X11 디스플레이가 없으면 텍스트 모드 브라우저가 사용돼요. 텍스트 모드 브라우저를 사용하면 사용자가 브라우저를 종료할 때까지 호출 프로세스가 차단돼요.

출처: Python documentation

본문

BROWSER 환경 변수가 존재하면 플랫폼 기본값보다 먼저 시도할 브라우저의 os.pathsep으로 구분된 목록으로 해석돼요. 목록 부분의 값이 %s 문자열을 포함하면 %s가 인자 URL로 대체되는 리터럴 브라우저 명령줄로 해석되고, 값이 등록된 브라우저 중 하나를 가리키는 단일 단어이면 그 브라우저가 검색 목록 앞에 추가되고, 부분이 %s를 포함하지 않으면 실행할 브라우저의 이름으로 해석돼요.

비-Unix 플랫폼이거나 Unix에서 원격 브라우저를 사용할 수 있으면 제어 프로세스는 사용자가 브라우저를 마칠 때까지 기다리지 않고, 원격 브라우저가 디스플레이에 자신의 창을 유지할 수 있게 해요.

가용성(Availability): WASI, Android 아님.

명령줄 인터페이스 (Command-line interface)

webbrowser 스크립트는 모듈의 명령줄 인터페이스로 사용할 수 있어요. URL을 인자로 받아요:

  • -n, --new-window — 가능하면 새 브라우저 창에서 URL 열기
  • -t, --new-tab — 새 브라우저 탭에서 URL 열기
python -m webbrowser -t "https://www.python.org"

예외

exceptionwebbrowser.Error

브라우저 제어 오류가 발생할 때 발생하는 예외예요.

함수

  • webbrowser.open(url, new=0, autoraise=True) — 기본 브라우저를 사용해 url을 표시해요. new가 0이면 같은 브라우저 창에서, 1이면 새 창에서, 2이면 새 페이지("탭")에서 엽니다. autoraise가 True이면 가능하면 창을 올려요. 브라우저가 성공적으로 실행되면 True를, 그렇지 않으면 False를 반환해요. 이 함수로 파일 이름을 열려는 시도는 운영 체제의 연관 프로그램을 시작해 작동할 수 있지만, 지원되지 않으며 이식 가능하지도 않아요.
  • webbrowser.open_new(url) — 가능하면 기본 브라우저의 새 창에서, 그렇지 않으면 유일한 브라우저 창에서 url을 열어요.
  • webbrowser.open_new_tab(url) — 가능하면 기본 브라우저의 새 페이지("탭")에서, 그렇지 않으면 open_new()와 동등하게 url을 열어요.
  • webbrowser.get(using=None) — 브라우저 타입 using에 대한 컨트롤러 객체를 반환해요. using이 None이면 호출자 환경에 적합한 기본 브라우저의 컨트롤러를 반환해요.
  • *webbrowser.register(name, constructor, instance=None, , preferred=False) — 브라우저 타입 name을 등록해요. 등록되면 get() 함수가 그 타입의 컨트롤러를 반환할 수 있어요. preferred를 True로 설정하면 이 브라우저가 인자 없는 get() 호출의 선호 결과가 돼요.

미리 정의된 브라우저 타입: 'mozilla'/'firefox'(Mozilla), 'epiphany'(Epiphany), 'kfmclient'/'konqueror'/'kfm'(Konqueror), 'opera'(Opera), 'links'(GenericBrowser), 'elinks'(Elinks), 'lynx'(GenericBrowser), 'w3m'(GenericBrowser), 'windows-default'(WindowsDefault, Windows 전용), 'macosx'(MacOSXOSAScript), 'safari'(MacOSXOSAScript, macOS 전용), 'google-chrome'/'chrome'(Chrome), 'chromium'/'chromium-browser'(Chromium), 'iosbrowser'(IOSBrowser, iOS 전용).

간단한 예제:

url = 'https://docs.python.org/'
# 브라우저 창이 이미 열려 있으면 새 탭에서 URL 열기
webbrowser.open_new_tab(url)
# 가능하면 새 창에서, 창을 올려서 URL 열기
webbrowser.open_new(url)

브라우저 컨트롤러 객체 (Browser controller objects)

브라우저 컨트롤러는 name 속성과 모듈 수준 편의 함수에 대응하는 세 가지 메서드 open(url, new=0, autoraise=True), open_new(url), open_new_tab(url)을 제공해요.

더 알아보기 (Learn more)