代理IP工程师分享Python爬虫异常和超时解决办法! 程序员在敲代码的过程中,一定会出现一定的错误,特别是像Python爬虫这种程序,并不能肯定每次请求都能保障稳定的返回同样的结果,例如反爬虫机制的强化,代理IP超时等,这类状况得到及时的解决,才可以保障爬虫工作良好的进行下去。

  代理IP工程师分享Python爬虫异常和超时解决办法:

  一、反爬虫机制。相信大多数的爬虫工作者都比较了解,这里就不详细的介绍了

  二、超时设置。网络的稳定性不会和平时一样,原因可能是代理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.implicitly_wait(10) # seconds

  driver.get("http://somedomain/url_that_delays_loading")

  myDynamicElement = driver.find_element_by_id("myDynamicElement")

  三、异常处理。

  程序中出现一场情况是很普遍的事情,处理异常通常是python使用try&except语句来处理,try&except语句的功能是要让其捕获异常,当然更重要的用途是让其忽略异常。因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队列进行修复其实是个最省力的好办法。

  四、自重启设置。

  如果一个程序在某种情况下报错多次,或者运行时间够久远,那么其性能可能会下降,就像一台电脑一样,用的越久就越慢,重启不失为一个好办法,当然这是治标不治本,但无疑是最省力的方法之一,当满足设置的重启条件后,程序自重启,也是让程序持久运行的一个好方法。