webbrowser — 편리한 웹 브라우저 컨트롤러
webbrowser — 편리한 웹 브라우저 컨트롤러
webbrowser 모듈은 사용자에게 웹 기반 문서를 표시할 수 있는 고수준 인터페이스를 제공해요. 대부분의 경우 이 모듈의 open() 함수를 호출하는 것으로 충분해요.
Unix에서는 X11에서 그래픽 브라우저가 선호되지만, 그래픽 브라우저를 사용할 수 없거나 X11 디스플레이가 없으면 텍스트 모드 브라우저가 사용돼요. 텍스트 모드 브라우저를 사용하면 사용자가 브라우저를 종료할 때까지 호출 프로세스가 차단돼요.
본문
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)을 제공해요.