cómo abrir una URL en Python

84
import urllib

fun open():
    return urllib.urlopen('http://example.com')

Pero cuando se abre example.com, no muestra css ni js. ¿Cómo puedo abrir la página web en un navegador web?

@error(404)
def error404(error):
    return webbrowser.open('http://example.com')

Estoy usando botella. Dándome el error:TypeError("'bool' object is not iterable",)

shamsee
fuente
Parece que tenemos una desconexión del idioma. el errordecorador parece estar esperando un iterable. webbrowswer.opense abra una URL en el navegador y el retorno Trueo False, preservando comando-consulta-separación . En realidad, no desea abrir esta página en el navegador, ¿verdad?
aaronasterling
¿Quiere descargar javascript y css después de haber descargado el html?
aaronasterling
Lo que me preocupa es abrir la URL en el navegador. Si es posible descargar js y css, entonces está bien.
shamsee
simplemente abra el intérprete de Python y escriba webbrowser.open('http://www.google.com')y vea si hace lo que quiere.
aaronasterling
si. El resultado es el mismo. Pero siempre se abre en mozilla.
shamsee

Respuestas:

186

con el módulo del navegador web

import webbrowser

webbrowser.open('http://example.com')  # Go to example.com
aaronasterling
fuente
¿¡¡¡¿Qué diablos ... esto siempre abre Internet Explorer? !!! D: Por el momento utilicé subprocess para llamar a un explorador con la URL como argumento. Esto siempre usa el "navegador web predeterminado" pero también abre una instancia de explorador ... hmmm
ewerybody
29
import webbrowser  
webbrowser.open(url, new=0, autoraise=True)

Muestra la URL con el navegador predeterminado. Si nuevo es 0, la URL se abre en la misma ventana del navegador si es posible. Si nuevo es 1, se abre una nueva ventana del navegador si es posible. Si nuevo es 2, se abre una nueva página del navegador ("pestaña") si es posible. Si autoraise es True, la ventana se eleva

webbrowser.open_new(url)

Abrir URL en una nueva ventana del navegador predeterminado

webbrowser.open_new_tab(url)

Abrir URL en una nueva página ("pestaña") del navegador predeterminado

diablillo
fuente
17

En la ventana

import os
os.system("start \"\" https://example.com")

En macOS

import os
os.system("open \"\" https://example.com")

En Linux

import os
os.system("xdg-open \"\" https://example.com")

Multiplataforma

import webbrowser

webbrowser.open('https://example.com')
abranhe
fuente
10

También tienes que leer los datos.

Consulte: http://www.doughellmann.com/PyMOTW/urllib2/ para comprenderlo.

response = urllib2.urlopen(..)
headers = response.info()
data = response.read()

Por supuesto, lo que quieres es renderizarlo en el navegador y la respuesta de aaronasterling es lo que quieres.

pyfunc
fuente
8

También puedes probar:

import os
os.system("start \"\" http://example.com")

Esta, aparte de la respuesta de @aaronasterling, tiene la ventaja de que abre el navegador web predeterminado. Asegúrese de no olvidar el "http: //".

Sebastián Hietsch
fuente
2

Aquí tienes otra forma de hacerlo.

import webbrowser

webbrowser.open("foobar.com")
David Odhiambo
fuente
1

Creo que esta es la forma fácil de abrir una URL usando esta función.

webbrowser.open_new_tab(url)
Namdari Himan
fuente