我正在尝试使用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(),但我不确切知道如何。
答案 0 :(得分:0)
您应该花一些时间阅读您正在使用的不同语句的文档。您正在使用多个错误。
我认为这会奏效。一个问题可能是,如果页面加载时间很长,则不允许浏览器导航到browser.get()
的新页面。您可以尝试发送ESC密钥或通过Google搜索找到的许多其他选项之一。
我将网站添加到“花费太长时间”的消息中,以便您知道哪些网站没有及时完成加载。
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()