Pular para o conteúdo

Webbrowser

Introdução

O módulo Webbrowser fornece uma interface de alto nível para exibir páginas Web. São métodos disponíveis:

  • webbrowser.open() – exibe uma página da Web;
  • webbrowser.open_new() – exibe uma página da Web em uma nova instância do navegador;
  • webbrowser.open_new_tab() – exibe uma página da Web em uma nova aba do navegador;
  • webbrowser.get() – retorna um objeto controlador para o navegador a ser usado (os métodos open(), open_new() e open_tab_new() podem ser usados com o controlador);
  • webbrowser.register() – registra um navegador que depois pode ser acessado com get().

Vários navegadores são predefinidos no Webbrowser como ‘mozilla’, ‘firefox’, ‘konqueror’, ‘opera’, ‘lynx’, ‘macosx’, ‘safari’, ‘google-chrome’, ‘chrome’ e ‘chromium’. Para usar o Firefox no Linux, basta usar

navegador = webbrowser.get('google-chrome')

Exemplos

  • Exemplo: pede uma palavra na linha de comando e abre o navegador padrão com a pesquisa Google para a palavra digitada.
import webbrowser
pesquisa = input('Pesquisar no Google: ')
webbrowser.open('https://www.google.com.br/search?&q=%s' %pesquisa)

Note que o comando de consulta usado no site Google quando a palavra ‘python’ é digitada, começa com

https://www.google.com.br/search?q=python

O resto da linha fornece informações para os servidores da Google como localização geográfica do usuário. Portanto, para fazer a busca, basta fornecer a parte inicial da string que aparece no navegador.

  • Exemplo: usa o mecanismo de busca Yahoo para pesquisar uma palavra.
import webbrowser
pesquisa = input('Pesquisar no Yahoo: ')
webbrowser.open('https://br.search.yahoo.com/search?p=%s' %pesquisa)

O pesquisa no Yahoo funciona de forma similar à pesquisa no Google, sendo que a palavra de busca fica ao final da string de busca e é usada a letra “p”.

  • Exemplo: usa o método webbrowser.get() para definir o navegador a ser usado pelo programa. Quando o método não fornece o nome do navegador, é usado o navegador padrão.
import webbrowser
navegador = webbrowser.get()
print(navegador)
navegador = webbrowser.get('google-chrome')
print(navegador)

O resultado da execução abaixo mostra que o navegador padrão do ambiente é o Firefox. Mas em seguida, o programa define o uso do navegador Chrome.

<webbrowser.Mozilla object at 0x7fac05767a30>
<webbrowser.Chrome object at 0x7fac05767850>

Após definir o navegador, pode-se o usar o método open() para abrir uma página.

navegador.open('https://www.python.org')

É possível juntar os métodos get() e open() em um mesmo comando.

webbrowser.get('google-chrome').open('https://www.python.org')
  • Exemplo: abre o navegador padrão com o endereço de página fornecido na linha de comando.
import webbrowser, sys
if len(sys.argv) > 1:
   pagina = sys.argv[1]
   print(pagina)
   webbrowser.open(pagina)
else:
   print('Forneça o endereço da página')

Para abrir a página da Google com o programa que tem o nome teste.py, basta digitar

python3 teste.py www.google.com
  • Exemplo: abre uma página Web (nome fornecido na linha de comandos) em quatro diferentes navegadores. Caso não consiga abrir algum navegador, mostra mensagem de erro na linha de comando.
import webbrowser, sys
if len(sys.argv) > 1:
   pagina = sys.argv[1]
   try:
      webbrowser.get('google-chrome').open(pagina)
      webbrowser.get('firefox').open(pagina)
      webbrowser.get('safari').open(pagina)
      webbrowser.get('opera').open(pagina)
   except Exception as erro:
      print('ERRO: ' + str(erro))
else:
      print('Forneça o endereço da página')

Caso um dos navegadores não esteja instalado no ambiente, a mensagem abaixo é mostrada.

ERRO: could not locate runnable browser

Vários tipos de navegadores são predefinidos. Veja a tabela completa em https://docs.python.org/3/library/webbrowser.html.

  • Exemplo: o método webbrowser.open_new() abre um nova instância do navegador padrão com a URL definida, enquanto o método webbrowser.open_new_tab() abre uma nova janela no navegador padrão (que pode já está aberto) com a URL definida.
import webbrowser
webbrowser.open_new('https://www.python.org')
  • Exemplo: o método webbrowser.register() permite registrar um navegador. Depois do registro, o método get() pode ser usado com esse navegador.
import webbrowser
webbrowser.register('operax', None, webbrowser.BackgroundBrowser('/usr/bin/opera'))
webbrowser.get('operax').open('https://www.python.org')

No exemplo acima, é registrado um navegador com o nome ‘operax’ e é fornecido o caminho do seu executável. A classe BackgroundBrowser indica que o navegador deve ser iniciado no segundo plano (background).