现在网络越来越普及,带宽速度普遍也有较大提升。伴随网络的普及,同时快速增长的还有网民的数量和网络流量。网站超时响应的“通病”,仍然是无法完全避免的。尤其是在网络流量高峰期访问HTTPS网站,使用类似Selenium的浏览器内核驱动driver方案过程中,这类问题的处理是关键。下面以Selenium WebDriver和Firefox为例子,介绍如何多层次应对网站超时响应的问题。
初始化全局超时配置参数,设置WebDriver的页面加载和脚本执行超时限制。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support import expected_conditions as ECS
from selenium.webdriver.support.wait import WebDriverWait
import traceback
import time
class WebEngine:
#...
def config(self):
self.engine=webdriver.Firefox()
#设置页面加载最大时限
self.engine.set_page_load_timeout(10)
#脚本执行最大时限
self.engine.set_script_timeout(10)
使用while循环有限次数尝试首次超时意外的重置连接。
def run(self):
retry=0
# 手动控制是否关闭
flag=True
pageend=