使用Selenium(python)截取多个URL的屏幕截图



我正在尝试使用python selenium库截取多个网站的屏幕截图。

在这里,我有一系列网站,例如

data = array of website [ 'google.com', 'youtube.com'... ]

如果一个网站加载时间太长,我希望程序开始打开下一个网站。

但是这段代码并没有达到我的预期...

browser = webdriver.Chrome('/Users/wk/Desktop/checkSafeContent/chromedriver')
for index, url in enumerate(data):
browser.set_page_load_timeout(30)    
try:
browser.get('http://'+data[index])
except:
print("takes too long")
browser.quit()
browser = webdriver.Chrome('/Users/wk/Desktop/checkSafeContent/chromedriver')
else:
browser.maximize_window()
browser.implicitly_wait(20)
# where images saved
browser.save_screenshot('/.../'+str(index)+'.png')
browser.quit()

我想我应该使用browser.close((,但我不知道具体怎么做。

您应该花一些时间阅读您正在使用的不同语句的文档。您错误地使用了多个。

我认为这会起作用。一个问题可能是,如果页面加载时间较长,则不允许浏览器导航到带有browser.get()的新页面。您可以尝试发送ESC密钥或通过谷歌搜索找到的许多其他选项之一。

我将该网站添加到"花费太长时间"消息中,以便您知道哪些站点没有及时完成加载。

browser = webdriver.Chrome('/Users/wk/Desktop/checkSafeContent/chromedriver')
browser.set_page_load_timeout(30)    
browser.maximize_window()
for index, url in enumerate(data):
try:
browser.get('http://' + data[index])
except:
print(data[index] + ' took too long')
else:
# where images saved
browser.save_screenshot('/.../' + str(index) + '.png')
browser.quit()

最新更新