Python爬虫中的代理ip异常和超时如何解决?程序员在敲代码的过程中,一定会出现一定的错误,特别是像Python爬虫这种程序,并不能肯定每次请求都能保障稳定的返回同样的结果,例如反爬虫机制的强化,代理IP超时等,这类状况得到及时的解决,才可以保障爬虫工作良好的进行下去。借助万变ip代理来突破ip限制。
Python爬虫中的代理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.implicitly_wait(10) # seconds
driver.get(“http://somedomain/url_that_delays_loading”)
myDynamicElement = driver.find_element_by_id(“myDynamicElement”)
三、异常处理。
程序中出现一场情况是很普遍的事情,处理异常通常是python使用try&except语句来处理,try&except语句的功能是要让其捕获异常,当然更重要的用途是让其忽略异常。因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队列进行修复其实是个最省力的好办法。
四、自重启设置。
如果一个程序在某种情况下报错多次,或者运行时间够久远,那么其性能可能会下降,就像一台电脑一样,用的越久就越慢,重启不失为一个好办法,当然这是治标不治本,但无疑是最省力的方法之一,当满足设置的重启条件后,程序自重启,也是让程序持久运行的一个好方法。