对于新手来说,在编写代码时会时不时出现异常的情况,尤其是爬虫这类程序,无法确保每次请求都能稳定地返回统一的结果,今天就带大家一起了解一下“python爬虫网络请求超时是什么意思?python爬虫怎么处理异常和超时?”,希望对大家的学习会有所帮助哦!
一、反爬虫策略。
反爬可以说它简单,也可以把它想的很复杂,针对不同的网站,它的网站结构就会有所不同,所以它的反爬措施也会不一样,常见的反爬有User-Agent、ip代理、cookie认证,js加密等等,所以需要保护的数据也会不一样,如果你在一个网上购物,那么你的个人信息就比较重要了,不然信息就会被窃取。
二、超时设置
每个网络总是稳定的可能性不大,可能会受到外界因素的干扰,导致某个时间中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()
隐式等待就是让服务器知道现在正在努力查找某个元素它们不是立即可用的时轮询DOM一段时间,它的是默认设置为零,如果设置了之后,将会为服务器对象实例的生命期设置隐式等待。
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语句不只是只有捕获异常功能,还有一个重要的功能就是让这些异常被忽略掉。因为在爬虫中的只要出现异常,你再进行请求操作,可能之前的操作就会消失。所以在发现异常的时候,可以对相应的任务队列进行修复才是最好的方法。
try: pass #可能出错的语句
except Exception,e: pass #保留错误的url路径,留待下次重跑
print e finally: #无论是否处理了异常都继续运行
print time.ctime()
四、自重启设置。
这个方法可以让程序持久运行,一旦进行了这个设置。当电脑出现问题的时候,满足重启条件,它就会开启自重启模式。
关于“python爬虫网络请求超时是什么意思?python爬虫怎么处理异常和超时?”就讲到这里啦,希望能帮你更好的解决爬虫网络请求超时的问题。
更多python相关文章请访问分类:python
【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!