我想截取属于youtube的几个链接的屏幕截图。我想截取将在其中播放视频的网页的屏幕截图,然后截取屏幕截图或截取屏幕截图而不播放,但是所有这些操作都必须使用python或R进行,但是它们不应该打开浏览器。它应该全部发生在后端。
任何对此的帮助都会很棒。
谢谢。
我尝试打开链接并同时使用R和python截取屏幕截图,并且确实在不打开浏览器的情况下截取了屏幕截图。但是视频屏幕截图是黑色的,有我不想要的错误。
R中的代码 图书馆(网络快照) webshot(“ https://www.youtube.com/watch?v=Nym5stAJAt8”,“ test.png”)
python中的代码 从硒导入webdriver driver = webdriver.PhantomJS() driver.set_window_size(1120,550) driver.get(“ https://www.youtube.com/watch?v=Nym5stAJAt8”) driver.save_screenshot(“ screenshot.png”)
答案 0 :(得分:0)
您可以使用Chrome的无头模式。在调用chrome的驱动程序之前,创建option的option对象,然后将其作为参数发送给驱动程序。然后,您甚至可以在没有任何屏幕包括docker容器的某些环境的后端运行此代码。 但是要小心设置窗口大小。这会影响您的屏幕截图结果。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options() #
chrome_options.add_argument('--headless')
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
driver.get_screenshot_as_file("capture.png")