Как открывать веб-сайты в фоновом режиме, а затем закрывать, не прерывая поток программы с помощью python?

#opencv #python-3.7 #os.system #python-webbrowser

#opencv #python-3.7 #os.system #python-webbrowser

Вопрос:

Я хочу открыть определенное видео в фоновом режиме с помощью python. Для этого я выполнил следующее кодирование

  chrome= "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s"
 webbrowser.get(chrome).open_new("https://www.youtube.com/watch?v=AFNUeUed8Roamp;ab_channel=NDTV")
 time.sleep(4)
 os.system("taskkill /im chrome.exe /f")**
  

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

Я хочу открыть его в фоновом режиме, потому что мне нужен только звук, поскольку мой проект предназначен для развлечения слепых, который открывает сайты с помощью жестов, а затем закрывает их, используя то же самое.

Ответ №1:

Я предлагаю вам использовать Selenium вместо пакета Webbrowser, поскольку он обладает большей функциональностью.

Установите пакет Selenium с помощью

 pip install selenium
  

Загрузите Chrome webdriver, который соответствует вашей версии Chrome, с

https://sites.google.com/a/chromium.org/chromedriver/downloads

Поместите файл driver .exe, в котором находится ваш скрипт python

Попробуйте этот скрипт

 import selenium
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
wait = WebDriverWait(browser, 3)
visible = EC.visibility_of_element_located

browser.get('https://www.youtube.com/watch?v=AFNUeUed8Roamp;ab_channel=NDTV')
wait.until(visible((By.ID, "video-title")))
browser.find_element_by_id("video-title").click()
browser.minimize_window()
time.sleep(7)
browser.quit()
  

Не используйте time.sleep() в цикле захвата Opencv, потому что он блокирует захват. Если вы хотите использовать временные задержки, рассмотрите возможность использования отдельного потока.
Посмотрите на

https://www.tutorialspoint.com/python/python_multithreading.htm

Комментарии:

1. Я обязательно попробую этот подход. Спасибо за ответ и ссылку тоже.