Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 webbrowser 모듈 완벽 가이드 – 웹 브라우저를 손쉽게 제어하는 방법

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 모듈을 활용하면 스크립트나 프로그램 실행 도중 필요한 웹 문서를 손쉽게 사용자에게 보여줄 수 있습니다.