webbrowser 모듈이란?
파이썬으로 웹 기반 문서를 사용자에게 표시하고 싶을 때 가장 간편하게 활용할 수 있는 것이 바로 webbrowser 모듈입니다. 이 모듈은 웹 문서를 다루기 위한 고수준(high-level) 인터페이스를 제공하므로, 복잡한 내부 동작을 신경 쓰지 않고도 단 몇 줄의 코드만으로 웹 브라우저를 실행하고 원하는 URL을 열 수 있습니다.
UNIX 계열 운영체제에서는 lynx, Netscape, Mosaic 등 다양한 브라우저를 지원하며, Windows와 Macintosh 환경에서는 시스템에 설치된 기본 브라우저를 자동으로 사용합니다.
모듈을 사용하려면 먼저 아래와 같이 임포트해야 합니다.
import webbrowser
webbrowser 모듈은 여러 메서드와 예외(exception)를 제공하며, 그 내용은 다음과 같습니다.
예외(Exception): webbrowser.Error
webbrowser 인터페이스 동작 중 오류가 발생하면 이 예외가 발생(raise)합니다. 예를 들어, 존재하지 않거나 지원되지 않는 브라우저 이름으로 컨트롤러를 요청할 때 이 에러를 만나게 됩니다.
메서드: webbrowser.open(url, new=0, autoraise=True)
기본 웹 브라우저를 사용해 지정된 URL을 표시합니다. 매개변수 new의 기본값은 0이며, 값에 따라 동작이 달라집니다.
- new = 0: 가능하면 현재 열려 있는 같은 브라우저 창에서 URL을 엽니다.
- new = 1: 새 브라우저 창(window)을 열어 URL을 표시합니다.
- new = 2: 새 브라우저 탭(tab)을 열어 URL을 표시합니다.
autoraise가 True이면 가능한 경우 해당 브라우저 창을 화면 맨 앞으로 올립니다. 성공적으로 브라우저가 열리면 True를, 그렇지 않으면 False를 반환합니다.
메서드: webbrowser.open_new(url)
지정한 URL을 항상 새 브라우저 창(window)에서 엽니다. 기본 브라우저를 통해 즉시 페이지를 띄우고 싶을 때 유용합니다.
메서드: webbrowser.get(using=None)
사용할 브라우저 타입에 대한 컨트롤러 객체를 반환합니다. using이 None이면 기본(default) 브라우저에 대한 컨트롤러를 반환하며, 특정 브라우저 이름을 전달하면 해당 브라우저의 컨트롤러를 받아올 수 있습니다.
메서드: webbrowser.register(name, constructor, instance=None, *, preferred=False)
새로운 브라우저 타입 이름을 등록하는 메서드입니다. 등록한 이후에는 get() 메서드를 통해 해당 브라우저의 컨트롤러를 가져올 수 있습니다. 매개변수 중 instance가 지정되지 않으면, 생성자(constructor)가 매개변수 없이 호출되어 컨트롤러가 생성됩니다. 또한 preferred=True로 설정하면 get() 호출 시 해당 브라우저가 우선적으로 선택됩니다.
미리 정의된 브라우저 타입
webbrowser 모듈에는 여러 브라우저 타입이 이미 정의되어 있습니다. 아래 표는 대표적인 타입들로, 이 이름들을 get() 메서드의 인자로 전달할 수 있습니다.
| 번호 | 타입 이름(Type Name) 및 클래스 이름(Class Name) |
|---|---|
| 1 | 'mozilla' Mozilla('mozilla') |
| 2 | 'firefox' Mozilla('firefox') |
| 3 | 'netscape' Mozilla('netscape') |
| 4 | 'opera' Opera() |
| 5 | 'links' GenericBrowser('links') |
| 6 | 'lynx' GenericBrowser('lynx') |
| 7 | 'safari' MacOSX('safari') |
| 8 | 'windows-default' WindowsDefault |
| 9 | 'chrome' Chrome('chrome') |
| 10 | 'chromium' Chromium('chromium') |
예제 코드
아래 예제는 Windows 기본 브라우저의 컨트롤러를 가져온 뒤, 새 창으로 특정 사이트를 여는 코드입니다.
import webbrowser as browser
my_browser = browser.get('windows-default')
my_browser.open_new('https://www.tutorialspoint.com')
실행 결과
위 코드를 실행하면 Windows의 기본 브라우저가 새 창으로 열리고, tutorialspoint 웹사이트가 화면에 표시됩니다. 이처럼 webbrowser 모듈을 활용하면 스크립트나 프로그램 실행 도중 필요한 웹 문서를 손쉽게 사용자에게 보여줄 수 있습니다.