jak otworzyć adres URL w Pythonie

86
import urllib

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

Ale kiedy otwiera się example.com, nie renderuje css ani js. Jak mogę otworzyć stronę internetową w przeglądarce internetowej?

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

Używam butelki. Podaje mi błąd:TypeError("'bool' object is not iterable",)

shamsee
źródło
Wygląda na to, że język się rozłączył. errordekorator wydaje się być oczekiwał iterable. webbrowswer.openbędzie otworzyć adresu URL w przeglądarce i zwrotu Truelub Falsekonserwujące poleceń zapytań-separację . Tak naprawdę nie chcesz otwierać tej strony w przeglądarce, prawda?
aaronasterling
Czy chcesz pobrać javascript i css po pobraniu html?
aaronasterling
Martwię się o otwarcie adresu URL w przeglądarce. Jeśli jest to możliwe z pobieraniem plików js i css, to jest OK.
shamsee
po prostu otwórz interpreter Pythona i wpisz webbrowser.open('http://www.google.com')i zobacz, czy robi to, co chcesz.
aaronasterling
tak. Wynik jest taki sam. Ale zawsze otwiera się w mozilli.
shamsee

Odpowiedzi:

188

z modułem przeglądarki internetowej

import webbrowser

webbrowser.open('http://example.com')  # Go to example.com
aaronasterling
źródło
Co… to zawsze otwiera przeglądarkę internetową? !!!? D: Na razie użyłem podprocesu do wywołania eksploratora z adresem URL jako argumentem. To zawsze używa „domyślnej przeglądarki internetowej”, ale także otwiera instancję eksploratora ... hmmm
ewerybody.
29
import webbrowser  
webbrowser.open(url, new=0, autoraise=True)

Wyświetlaj adres URL za pomocą domyślnej przeglądarki. Jeśli nowy jest 0, adres URL jest otwierany w tym samym oknie przeglądarki, jeśli to możliwe. Jeśli nowy ma wartość 1, w miarę możliwości otwierane jest nowe okno przeglądarki. Jeśli nowy to 2, nowa strona przeglądarki („karta”) jest otwierana, jeśli to możliwe. Jeśli autoraise ma wartość True, okno jest podnoszone

webbrowser.open_new(url)

Otwórz adres URL w nowym oknie domyślnej przeglądarki

webbrowser.open_new_tab(url)

Otwórz adres URL na nowej stronie („karcie”) w domyślnej przeglądarce

chochlik
źródło
18

W oknie

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

W systemie macOS

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

W systemie Linux

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

Wieloplatformowe

import webbrowser

webbrowser.open('https://example.com')
abranhe
źródło
10

Musisz też przeczytać dane.

Sprawdź: http://www.doughellmann.com/PyMOTW/urllib2/, aby to zrozumieć.

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

Oczywiście chcesz wyrenderować go w przeglądarce, a odpowiedź aaronasterling jest taka, jak chcesz.

pyfunc
źródło
8

Możesz też spróbować:

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

Ta odpowiedź, inna niż @aaronasterling, ma tę zaletę, że otwiera domyślną przeglądarkę internetową. Nie zapomnij o „http: //”.

Sebastian Hietsch
źródło
2

Oto inny sposób, aby to zrobić.

import webbrowser

webbrowser.open("foobar.com")
David Odhiambo
źródło
1

Myślę, że jest to łatwy sposób na otwarcie adresu URL za pomocą tej funkcji

webbrowser.open_new_tab(url)
Namdari Himan
źródło