Python

Python открыть ссылку в новой вкладке: webbrowser и Selenium

Если вам нужно из Python открыть сайт в браузере, чаще всего достаточно стандартного модуля webbrowser. Он уже входит в Python, его не нужно отдельно устанавливать через pip, и для первой задачи это самый простой путь

Но есть важное разделение. webbrowser умеет открыть ссылку, но не умеет управлять страницей после открытия. Если вам нужно нажимать кнопки, проверять текст, переключаться между вкладками и собирать данные, нужен Selenium

Короткий ответ

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

import webbrowser

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

После запуска скрипта Python попросит операционную систему открыть этот адрес в браузере по умолчанию. Обычно ссылка появляется в новой вкладке уже открытого браузера

Как запустить пример

Создайте файл open_tab.py, вставьте код и выполните его в терминале

python open_tab.py

На macOS и Linux иногда команда называется python3

python3 open_tab.py

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

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

Можно открыть несколько вкладок подряд. Но с этим лучше не злоупотреблять: браузер может посчитать такие действия навязчивыми, а пользователь быстро потеряет контроль над вкладками

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)

Такой код удобен для личных скриптов: открыть набор рабочих ссылок, документацию, внутреннюю базу знаний или страницы проекта

Как открыть ссылку из переменной

Адрес не обязан быть написан прямо в вызове функции. Его можно собрать заранее, получить из файла, из списка или из пользовательского ввода

import webbrowser

domain = "https://aglamov.biz"
page = "/python-s-nulya"

url = domain + page

webbrowser.open_new_tab(url)

Для новичка здесь важно следить, чтобы итоговая строка была полноценной ссылкой: с https://, доменом и правильным путем

Когда webbrowser не подходит

webbrowser открывает ссылку, но дальше почти ничего не контролирует. Вы не сможете надежно узнать, загрузилась ли страница, найти кнопку, взять текст со страницы или переключиться на конкретную вкладку

Если задача звучит так, вам нужен Selenium:

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

Минимальный пример с Selenium выглядит так

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://aglamov.biz/python-s-nulya")

driver.switch_to.new_window("tab")
driver.get("https://aglamov.biz/jazyki-programmirovanija/python")

print(driver.title)

Здесь Python уже не просто просит систему открыть ссылку. Он запускает браузер под управлением Selenium и может продолжать работать с этой страницей

Как выбрать способ

Если вы делаете личный скрипт «открой мне сайт», берите webbrowser. Это быстрее, проще и не требует настройки драйверов

Если вы делаете парсер, автотест, проверку страницы или учебный пример по автоматизации браузера, берите Selenium. Он сложнее, зато дает контроль над вкладками, окнами, элементами и ожиданиями

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

Сделайте файл open_python_links.py и откройте из него две вкладки: курс Python с нуля и рубрику Python. После этого замените одну ссылку на любой другой адрес и проверьте, что браузер открывает именно новый вариант

Чтобы закрепить тему, добавьте список из трех ссылок и откройте их циклом. Это простой способ увидеть, как Python работает со списками и строками в реальной бытовой задаче

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

Ошибка первая: писать адрес без протокола. Строка aglamov.biz/python-s-nulya может быть воспринята не как ссылка, а как локальный путь или поисковый запрос. Лучше писать полный адрес https://aglamov.biz/python-s-nulya

Ошибка вторая: ждать, что webbrowser вернет содержимое страницы. Модуль открывает браузер, но не скачивает HTML и не дает доступ к кнопкам

Ошибка третья: запускать пример на сервере без графического интерфейса. Там может не быть обычного браузера, поэтому открытие вкладки физически некуда вывести

Ошибка четвертая: использовать open_new_tab() для автоматизации сайта. Для автоматики лучше сразу перейти к Selenium, чтобы не упереться в отсутствие контроля

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

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

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

Настройки cookie

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