该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
写代码总是会出异常的,尤其是爬虫这类程序,无法确保每次请求都能稳定地返回统一的结果,比如反爬虫策略提升、代理IP超时、程序异常等等,处理好这些问题,才能保证爬虫程序持续地运行下去。
一、反爬虫策略。这里不多说,之前有讨论过,可以参考之前的文章《爬虫如何有效突破网站的反爬机制?》。
二、超时设置。网络总是不会一如既往的稳定如一,可能代理IP某个时间不稳定,也可能目标服务器某个时间不稳定,还有自身机器的网络也可能不稳定,如果不设置好超时,程序也不好跑下去。
selenium+chrome的超时设置:
显式等待:、等待某个条件发生,然后再继续进行代码。
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until( #这里修改时间
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()
隐式等待:是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用的)时轮询DOM一定时间。默认设置为0,一旦设置,将为WebDriver对象实例的生命期设置隐式等待。
driver = webdriver.Firefox()
driver.im