Python открыть с помощью

Как открыть URL-адрес в Python

Python – это очень сильный и продвинутый язык программирования, и мы можем выполнять различные задачи и функции с помощью Python. Одна из таких задач, которую мы можем легко решить, – это открытие URL-адреса с помощью программы Python. В этом руководстве мы собираемся обсудить методы или способы, которые мы можем использовать для открытия URL-адреса в Python.

Открытие URL в Python

Мы можем использовать программу Python, чтобы открыть URL-адрес с помощью скрипта Python, и для этого мы можем использовать набор других библиотек. У нас есть разные методы, в которых мы будем использовать разные библиотеки и их функции для открытия URL-адреса, указанного в программе.

В этом разделе мы собираемся использовать следующие методы, чтобы открыть заданный URL-адрес с помощью программы Python:

  1. Использование функции библиотеки Urllib.
  2. Использование функции библиотеки веб-браузера.
  3. Использование функции библиотеки Selenium.

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

Метод 1. Использование функции библиотеки urllib

Urllib – это встроенный модуль Python, который мы можем использовать для работы с URL-адресами и открытия URL-адресов с помощью программы Python. В модуле urllib определены различные классы и функции, которые помогают нам выполнять различные действия с URL-адресами с помощью программы Python.

Читайте также:  New file encoding java

Мы будем использовать метод urlopen(), импортировав библиотеку urllib.request в программу, а затем дадим URL-адрес внутри этой функции, чтобы она открывалась в браузере нашего устройства. Чтобы лучше понять реализацию этого метода urlopen(), мы будем использовать его в примере программы Python и открывать ссылку через него.

Пример 1. Посмотрите на программу Python, в которой мы используем функцию urlopen():

# Importing urllib request module in the program import urllib.request # Using urlopen() function with url in it webUrl = urllib.request.urlopen('https://www.javatpoint.com/python-tutorial')

Функция urlopen()

Объяснение: мы открыли URL-адрес «Учебника Python в JavaTpoint» в нашем браузере, указав URL-адрес внутри функции urlopen() в программе.

Метод 2. Использование функции библиотеки веб-браузера

Теперь мы будем использовать библиотеку веб-браузера, которая представляет собой библиотеку на Python для работы с веб-контентом. Среда создается для пользователя с помощью модуля веб-браузера, который позволяет пользователю отображать различное веб-содержимое в самом приложении Python.

Прежде чем мы начнем работать с библиотекой веб-браузера, мы должны убедиться, что она правильно установлена в нашей системе, в которой мы запускаем Python. И, если библиотека веб-браузера отсутствует в системе, мы можем установить ее, используя следующую команду в командной строке нашего устройства:

Теперь мы начнем работать с библиотекой веб-браузера и откроем URL-адрес с помощью библиотеки веб-браузера; мы будем использовать ее функцию open() в программе. Чтобы лучше понять реализацию этого метода библиотеки веб-браузера для открытия URL-адреса в Python, мы будем использовать его в примере программы Python и открывать ссылку через него.

Пример 2. Посмотрите на следующую программу Python:

# Import webbrowser module in the program import webbrowser # Add a URL of JavaTpoint to open it in a browser url= 'https://www.javatpoint.com/python-tutorial' # Open the URL using open() function of module webbrowser.open_new_tab(url)

Функция open()

Объяснение: Мы открыли URL-адрес в браузере Chrome в нашей системе, используя функцию open_new_tab() модуля веб-браузера и указав в нем URL-ссылку.

Метод 3. Использование функции библиотеки Selenium

Библиотека Selenium – это мощный инструмент, предоставляемый Python, и мы можем использовать его для управления URL-ссылками и веб-браузером нашей системы с помощью программы Python. Мы также можем открывать URL-ссылки в нашей программе Python, используя функции библиотеки Selenium.

Связывание функций библиотеки в Python предоставляет нам очень удобные API для доступа к WebDrivers модулей Selenium, таких как Chrome, Firefox, Microsoft Edge и т. д.

Установка библиотеки

Прежде чем мы начнем работать с библиотекой Selenium, мы должны убедиться, что она правильно установлена в нашей системе, в которой мы запускаем Python. Чтобы установить библиотеку selenium, мы должны использовать следующую команду с установщиком pip в терминале командной строки:

Установка библиотеки selenium

Как видно выше, мы успешно установили библиотеку в нашу систему. В настоящее время версиями Python, поддерживающими библиотеку Selenium, являются Python 2.7, Python 3.5 и все более поздние версии.

Установка веб-драйверов

Чтобы использовать функции библиотеки selenium с URL-адресами, мы также должны установить веб-драйверы, предоставляемые selenium для соответствующего браузера.

WebDriver – это пакет, предоставляемый selenium для взаимодействия с веб-браузером, присутствующим в нашей системе. WebDrivers взаимодействует с удаленным веб-сервером или веб-браузером системы, используя проводной протокол, общий для всех веб-браузеров.

Здесь мы предоставляем ссылки для загрузки веб-драйверов некоторых известных браузеров и используем эти ссылки; вы можете загрузить драйверы для веб-браузера, присутствующего в системе.

https://webkit.org/blog/6900/webdriver-support-in-safari-10/
https://github.com/mozilla/geckodriver/releases
https://sites.google.com/a/chromium.org/chromedriver/downloads

Теперь мы начнем работать с библиотекой Selenium и открытым URL-адресом, используя функции библиотеки в программе. Чтобы лучше понять реализацию этого метода использования библиотеки Selenium для открытия URL-адреса в Python, мы будем использовать его в примере программы Python и открывать ссылку через него.

Пример 3. Посмотрите на следующую программу Python:

# Import webdriver from selenium library from selenium import webdriver # Importing keys in the program from webdriver from selenium.webdriver.common.keys import Keys # Providing the path of chrome Web driver driver = webdriver.Chrome('C:/Users/Manish/Downloads/chromedriver_win32/chromedriver.exe') # Opening url by get() method driver.get("https://www.javatpoint.com/python-tutorial")

Выход

Открытие URL-адрес в браузере

Объяснение: После импорта веб-драйверов из библиотеки Selenium мы импортировали ключи из веб-драйверов в программе. Мы предоставили путь для загруженного Chrome webdriver, используя указанные выше ссылки. Затем с помощью функции get() с драйвером мы открыли URL-адрес в браузере, указав ссылку в методе get().

Используя любой из трех методов, упомянутых в этом руководстве, мы можем легко открыть URL-адрес в веб-браузере нашей системы с помощью программы Python.

Источник

Как открыть ссылку в Python. Работа с WebBrowser и решение проблемы с Internet Explorer

В ходе работы над курсачом для универа столкнулся со стандартным модулем Python — WebBrowser. Через этот модуль я хотел реализовать работу голосового помощника — Lora с дефолтным браузером, но всё пошло не так гладко как ожидалось. Давайте для начала расскажу вам что это за модуль и как он вообще работает.

WebBrowser — это вшитый в Python модуль, который предоставляет собой высокоуровневый интерфейс, позволяющий просматривать веб-документы.

Для начала работы импортируйте модуль командой:

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

1. Написать через одну строчку:

webbrowser.open(url, new=0, autoraise=True)
webbrowser.open('https://vk.com', new=2)

Если new = 0, URL-адрес открывается, если это возможно, в том же окне браузера. Если переменная new = 1, открывается новое окно браузера, если это возможно. Если new = 2, открывается новая страница браузера («вкладка»), если это возможно.

Значение autoraise можно смело пропускать, ибо оно открывает браузер поверх всех окон, а большинство современных браузеров плюёт на эту переменную даже в значении False.

2. Не мучиться с запоминанием параметров new и писать по-человечески:

Данная конструкция открывает URL-адрес в новом ОКНЕ браузера по умолчанию, если это возможно, в противном случае откроет URL-адрес в единственном окне браузера.

webbrowser.open_new_tab(url)

В этом случае URL-адрес откроется на новой странице (”tab») браузера по умолчанию, если это возможно, в противном случае эквивалентно open_new ().

Предположим, что вам не нужен браузер по умолчанию. Для выбора браузера существует классная команда .get()

Грубо говоря, вы просто указываете какой браузер вам использовать.

Например, открытие новой вкладки в Google Chrome:

webbrowser.get(using='google-chrome').open_new_tab('https://vk.com')
Type Name Class Name
‘mozilla’ Mozilla(‘mozilla’)
‘firefox’ Mozilla(‘mozilla’)
‘netscape’ Mozilla(‘netscape’)
‘galeon’ Galeon(‘galeon’)
‘epiphany» Galeon(‘epiphany’)
‘skipstone’ BackgroundBrowser(‘skipstone’)
‘kfmclient’ Konqueror()
‘konqueror» Konqueror()
‘kfm’ Konqueror()
‘mosaic’ BackgroundBrowser(‘mosaic’)
‘opera’ Opera()
‘grail’ Grail()
‘links’ GenericBrowser(‘links’)
‘elinks’ Elinks(‘elinks’)
‘lynx’ GenericBrowser(‘lynx’)
‘w3m’ GenericBrowser(‘w3m’)
‘windows-default’ WindowsDefault
‘macosx’ MacOSX(‘default’)
‘safari’ MacOSX(‘safari’)
‘google-chrome’ Chrome(‘google-chrome’)
‘chrome» Chrome(‘chrome’)
‘chromium» Chromium(‘chromium’)
‘chromium-browser’ Chromium(‘chromium-browser’)

Но не всегда получается обойтись одним только .get() и в этом случае на помощь приходит функция .register(), например:

import webbrowser webbrowser.register('Chrome', None, webbrowser.BackgroundBrowser('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')) webbrowser.get('Chrome').open_new_tab('vk.com')

Мы указали путь к Google Chrome, назвали его и теперь все ссылки открываются только в нём. Надеюсь немного разобрались с модулем WebBrowser и теперь перейдём к моей маленькой проблеме.

Проблема

Как говорилось ранее, для курсового проекта я выбрал создание голосового ассистента. Хотелось его научить переходить по ссылкам и искать информацию в поисковике. Конечно можно было бы «напиповать» множество библиотек для этого, но принципиально хотелось реализовать это через стандартный модуль WebBrowser.

Так как у большинства современных браузеров строка ввода ссылки и поисковая строка это одно и то же, то, казалось бы, можно просто передать запрос туда же, куда передаётся ссылка.

import webbrowser webbrowser.open_new_tab('https://vk.com') webbrowser.open_new_tab('яблоки')

По логике этого кода должны открыться две вкладки:

Раз нам позволяют открывать только ссылки в дефолтном браузере, так и будем открывать только ссылки.

Шаги решения

  1. Делаем поисковый запрос в наш поисковик (яндекс, гугл и т.д. и т.п.)
  2. Вытаскиваем ссылку

И, как уже многие догадались, просто вставляем нашу ссылку без того, что идёт после «text=»

import webbrowser webbrowser.open_new_tab('https://vk.com') webbrowser.open_new_tab('https://yandex.ru/search/?lr=10735&text=')
webbrowser.open_new_tab('https://yandex.ru/search/?lr=10735&text='+'еда')
webbrowser.open_new_tab('https://yandex.ru/search/?lr=10735&text=%s'%'еда')
webbrowser.open_new_tab('https://yandex.ru/search/?lr=10735&text=<>'.format('еда'))

Для начала мы понимаем, что ссылка несёт в себе домен (.ru, .com и т.д.), в запросе же, как правило, точку не ставят (купить машину, фильм онлайн и т.д.), а в ссылке пробел.

Следовательно, мы будем искать точку и пробел в том, что ввёл пользователь. Реализовать мы сможем это благодаря модулю re, который также изначально встроен в Python. Python предлагает две разные примитивные операции, основанные на регулярных выражениях: match выполняет поиск паттерна в начале строки, тогда как search выполняет поиск по всей строке. Мы воспользуемся операцией search.

import webbrowser import re call = input('Введите ссылку или запрос: ') if re.search(r'\.', call): webbrowser.open_new_tab('https://' + call) elif re.search(r'\ ', call): webbrowser.open_new_tab('https://yandex.ru/search/?text='+call) else: webbrowser.open_new_tab('https://yandex.ru/search/?text=' + call)

Пользователь вводит ссылку или текст запроса в переменную call.

if re.search(r'\.', call): webbrowser.open_new_tab('https://' + call)

Первое условие проверяет переменную call на точку внутри неё. Символ ‘\’ обязателен, иначе модуль не понимает, что перед ним символ точка.

В этом условии всё тоже самое что и в первом, но проверка ведётся уже на пробел. А пробел говорит о том, что перед нами поисковой запрос.

else: webbrowser.open_new_tab('https://yandex.ru/search/?text=' + call)

А else, в свою очередь, присваивает всё что написал пользователь без пробелов и точек в поисковый запрос.

Проверка на пробел является обязательной, иначе WebBrowser открывает Internet Explorer.

Всем спасибо за внимание! Надеюсь данная статья кому-нибудь окажется полезной.

Источник

Оцените статью