您的位置:首页 > 新闻资讯 >文章内容
Python爬虫中的代理ip异常和超时如何解决
来源: 作者:admin 时间:2019-08-23 10:42:52

  Python爬虫中的代理ip异常和超时如何解决?程序员在敲代码的过程中,一定会出现一定的错误,特别是像Python爬虫这种程序,并不能肯定每次请求都能保障稳定的返回同样的结果,例如反爬虫机制的强化,代理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语句的功能是要让其捕获异常,当然更重要的用途是让其忽略异常。因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队列进行修复其实是个最省力的好办法。


  四、自重启设置。


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


相关文章内容简介
在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部