如何在后台打开网站然后关闭而不中断使用python的程序流程?

问题描述

我想使用python在后台打开特定视频。为此,我完成了以下编码

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

但是打开URL后,程序不会继续,直到我手动关闭该网站。 而且,如果我事先打开chrome浏览器,则一切正常。但这不是我想要的。

我想在后台打开它,因为我只需要音频,因为我的项目是用于盲人娱乐,该娱乐只使用手势打开网站,然后使用手势关闭网站。

解决方法

我建议您使用Selenium而不是Webbrowser软件包,因为它具有更多功能。

使用以下命令安装Selenium软件包

pip install selenium

从以下位置下载与您的Chrome版本匹配的Chrome网络驱动程序

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

将驱动程序.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=AFNUeUed8Ro&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()

请勿在Opencv捕获循环中使用time.sleep(),因为它会阻止捕获。如果要使用时间延迟,请考虑使用单独的线程。 看

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