如何在不使用python或R打开浏览器的情况下拍摄youtube页面的屏幕截图?

时间:2019-05-18 18:19:38

标签: python r selenium phantomjs screenshot

我想截取属于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”)

the output I get the output I want

1 个答案:

答案 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")