Python爬虫代理ip异常和超时解决方案

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

Python爬虫中的代理ip异常和超时如何解决

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

二、超时设置。网络的稳定性不会和平时一样,原因可能是代理IP在某一个时间段内不能保持平时一样的稳定性,但是也有可能是对方的原因,对方的服务器是不稳定的,还有自身机器的网络也可能不稳定,如果不设置好超时,程序也不好跑下去。

selenium+chrome的超时设置:

显式等待:、等待某个条件发生,然后再继续进行代码。

driver = webdriver.Firefox()

driver.get(“”)

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(“”)

myDynamicElement = driver.find_element_by_id(“myDynamicElement”)

三、异常处理

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

四、自重启设置

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

这里推荐一款适合爬虫的代理ip---代理云

爬虫的小伙伴可以去领取免费的代理IP试一下

国内高质动态IP。时效2-10分钟,现在注册还能免费领取一万代理IP

代理云 - 可视化用户控制台​console.v4.dailiyun.com/user/?channel=wyh-zh