Python

Как открыть ссылку через Python: webbrowser, новая вкладка и запуск браузера

Чтобы открыть ссылку через Python в браузере, используйте стандартный модуль webbrowser. Он не требует установки дополнительных библиотек и подходит для простых задач: открыть сайт, локальный файл, страницу документации или ссылку после выполнения программы

Самый короткий пример

import webbrowser

webbrowser.open("https://aglamov.biz")

После запуска Python попросит систему открыть ссылку в браузере по умолчанию

Открыть ссылку в новой вкладке

Для новой вкладки используйте open_new_tab()

import webbrowser

webbrowser.open_new_tab("https://aglamov.biz/python-s-nulya")

Есть и вариант через open() с параметром new

import webbrowser

webbrowser.open("https://aglamov.biz/python-s-nulya", new=2)

Значение new=2 означает новую вкладку, если браузер это поддерживает

Открыть ссылку в новом окне

import webbrowser

webbrowser.open_new("https://aglamov.biz")

Или так

webbrowser.open("https://aglamov.biz", new=1)

На практике поведение зависит от браузера и настроек системы. Некоторые браузеры вместо нового окна все равно открывают новую вкладку

Проверьте, что ссылка начинается с http или https

Если пользователь вводит адрес, лучше проверить начало ссылки

import webbrowser

url = input("Введите ссылку: ")

if not url.startswith(("http://", "https://")):
    url = "https://" + url

webbrowser.open_new_tab(url)

Теперь пользователь может ввести aglamov.biz, а программа сама добавит https://

Открыть несколько ссылок

Можно пройти по списку ссылок циклом

import webbrowser

links = [
    "https://aglamov.biz/python-s-nulya",
    "https://aglamov.biz/jazyki-programmirovanija/python",
    "https://docs.python.org/3/library/webbrowser.html"
]

for link in links:
    webbrowser.open_new_tab(link)

Не открывайте десятки вкладок сразу без предупреждения пользователя. Это неудобно и может выглядеть как ошибка программы

Открыть локальный HTML-файл

webbrowser умеет открывать не только сайты, но и локальные файлы

import webbrowser
from pathlib import Path

file_path = Path("index.html").resolve()
webbrowser.open(file_path.as_uri())

as_uri() превращает путь к файлу в ссылку формата file:///..., которую понимает браузер

Такой подход удобен, если Python сгенерировал HTML-отчет и нужно сразу показать его пользователю

Открытие ссылки и requests — не одно и то же

webbrowser.open() открывает ссылку в браузере для человека. Python не получает HTML-код страницы и не анализирует содержимое

import webbrowser

webbrowser.open("https://example.com")

Если вам нужно скачать страницу в Python-код, нужен другой подход, например библиотека requests

import requests

response = requests.get("https://example.com")
print(response.text[:200])

То есть выбор зависит от задачи

  • открыть страницу пользователю — webbrowser
  • получить HTML в коде — requests
  • управлять браузером и нажимать кнопки — Selenium или Playwright

Как открыть ссылку в конкретном браузере

Иногда нужно не просто открыть браузер по умолчанию, а выбрать конкретный. Это возможно через webbrowser.get(), но путь и имя браузера зависят от системы

Пример может выглядеть так

import webbrowser

chrome = webbrowser.get("chrome")
chrome.open_new_tab("https://aglamov.biz")

Но на некоторых компьютерах имя chrome не будет найдено. Для учебных задач лучше начинать с браузера по умолчанию, а конкретный браузер подключать только при явной необходимости

Как открыть ссылку после условия

Частый сценарий: если пользователь выбрал пункт меню, открываем ссылку

import webbrowser

choice = input("Открыть курс Python? да/нет: ")

if choice.lower() == "да":
    webbrowser.open_new_tab("https://aglamov.biz/python-s-nulya")
else:
    print("Ок, не открываем")

Здесь lower() нужен, чтобы Да, ДА и да обрабатывались одинаково

Почему ссылка не открывается

Если код не открывает браузер, проверьте

  • установлен ли браузер по умолчанию
  • запускается ли код на сервере без графического интерфейса
  • правильно ли написана ссылка
  • не блокирует ли запуск среда разработки
  • не запускаете ли вы код внутри контейнера или удаленной машины

На сервере без рабочего стола webbrowser.open() может ничего не показать, потому что там нет окна браузера. В таком случае нужно выводить ссылку в консоль или отправлять ее пользователю другим способом

Мини-практика

Напишите программу, которая предлагает выбрать один из трех материалов

import webbrowser

links = {
    "1": "https://aglamov.biz/python-s-nulya",
    "2": "https://aglamov.biz/jazyki-programmirovanija/python",
    "3": "https://docs.python.org/3/library/webbrowser.html"
}

print("1 — курс Python с нуля")
print("2 — рубрика Python")
print("3 — документация webbrowser")

choice = input("Что открыть? ")

if choice in links:
    webbrowser.open_new_tab(links[choice])
else:
    print("Такого пункта нет")

После запуска попробуйте ввести 1, 2, 3 и неверное значение. Так вы потренируете словарь, условие, пользовательский ввод и открытие ссылок

Частые ошибки

Не добавлять http или https

Строка example.com может не открыться так, как ожидается. Лучше использовать полный адрес: https://example.com

Думать, что webbrowser скачивает страницу

Он только открывает ссылку в браузере. Для получения HTML нужен requests или другой HTTP-клиент

Запускать код на сервере и ждать окно браузера

На сервере без графического интерфейса открыть окно браузера обычно невозможно

Открывать слишком много вкладок циклом

Это раздражает пользователя и может подвесить браузер. Лучше спрашивать подтверждение

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x