Open site in python

Python Script to Open a Web Browser

In this article we will be discussing some of the methods that can be used to open a web browser (of our choice) and visit the URL we specified, using python scripts.

In the Python package, we have a module named webbrowser, which includes a lot of methods that we can use to open the required URL in any specified browser we want. For that, we just have to import this module to our script file, and then we have to call some of its functions (declared and defined below) with our required inputs. Hence this module will then open up the browser we want and will get the page we want.

The methods present in this module are described below:

S No. Syntax of Method Description
1 webbrowser.open(url, new = 0, autoraise = true) This is the main method where the web browser with the passed URL is opened and is displayed to the user. If the parameter “new” is 0 then URL is opened in the same browser and if it is 1 then URL is opened in another browser and if it’s 2, then the page is opened in another tab.
2 webbrowser.open_new(url) URL passed is opened in the a new browser if it is possible to do that, else it is opened in default one.
3 webbrowser.open_new_tab(url) Opens new tab of passpage URL passed in the browser which is currently active.
4 webbrowser.get(using=None) This command is used to get the object code for the web browser we want to use. In simple words,, we could use this command to get the code of the web browser (stored in python) and then we could use that code to open that particular web browser. We passes the name of the web browser which we want to use as a string.
5 webbrowser.register(name, constructor, instance=None, preferred=False) This method is used to register the name of the favorite browser in the Python environment if its code was not registered previously. Actually, at the beginning, none of the browsers is registered and only the default one is called each time. Hence we had to register them manually.
Читайте также:  Проверка кода html css js

Now we are going to use these methods to see how we could open browsers with our passed URLs.

Below is the implementation:

Источник

webbrowser — Convenient web-browser controller¶

The webbrowser module provides a high-level interface to allow displaying web-based documents to users. Under most circumstances, simply calling the open() function from this module will do the right thing.

Under Unix, graphical browsers are preferred under X11, but text-mode browsers will be used if graphical browsers are not available or an X11 display isn’t available. If text-mode browsers are used, the calling process will block until the user exits the browser.

If the environment variable BROWSER exists, it is interpreted as the os.pathsep -separated list of browsers to try ahead of the platform defaults. When the value of a list part contains the string %s , then it is interpreted as a literal browser command line to be used with the argument URL substituted for %s ; if the part does not contain %s , it is simply interpreted as the name of the browser to launch. 1

For non-Unix platforms, or when a remote browser is available on Unix, the controlling process will not wait for the user to finish with the browser, but allow the remote browser to maintain its own windows on the display. If remote browsers are not available on Unix, the controlling process will launch a new browser and wait.

The script webbrowser can be used as a command-line interface for the module. It accepts a URL as the argument. It accepts the following optional parameters: -n opens the URL in a new browser window, if possible; -t opens the URL in a new browser page (“tab”). The options are, naturally, mutually exclusive. Usage example:

python -m webbrowser -t "https://www.python.org" 

This module does not work or is not available on WebAssembly platforms wasm32-emscripten and wasm32-wasi . See WebAssembly platforms for more information.

The following exception is defined:

exception webbrowser. Error ¶

Exception raised when a browser control error occurs.

The following functions are defined:

webbrowser. open ( url , new = 0 , autoraise = True ) ¶

Display url using the default browser. If new is 0, the url is opened in the same browser window if possible. If new is 1, a new browser window is opened if possible. If new is 2, a new browser page (“tab”) is opened if possible. If autoraise is True , the window is raised if possible (note that under many window managers this will occur regardless of the setting of this variable).

Note that on some platforms, trying to open a filename using this function, may work and start the operating system’s associated program. However, this is neither supported nor portable.

Raises an auditing event webbrowser.open with argument url .

Open url in a new window of the default browser, if possible, otherwise, open url in the only browser window.

webbrowser. open_new_tab ( url ) ¶

Open url in a new page (“tab”) of the default browser, if possible, otherwise equivalent to open_new() .

webbrowser. get ( using = None ) ¶

Return a controller object for the browser type using. If using is None , return a controller for a default browser appropriate to the caller’s environment.

webbrowser. register ( name , constructor , instance = None , * , preferred = False ) ¶

Register the browser type name. Once a browser type is registered, the get() function can return a controller for that browser type. If instance is not provided, or is None , constructor will be called without parameters to create an instance when needed. If instance is provided, constructor will never be called, and may be None .

Setting preferred to True makes this browser a preferred result for a get() call with no argument. Otherwise, this entry point is only useful if you plan to either set the BROWSER variable or call get() with a nonempty argument matching the name of a handler you declare.

Changed in version 3.7: preferred keyword-only parameter was added.

A number of browser types are predefined. This table gives the type names that may be passed to the get() function and the corresponding instantiations for the controller classes, all defined in this module.

Источник

Как открыть ссылку в 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.

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

Источник

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