python 在爬虫中timeout设置超时有什么作用
#-*-coding:cp936-*-#Python2.7#xiaodengimporturllib,urllib2urllib.getproxies_registry=...
# -*- coding: cp936 -*-
#Python 2.7
#xiaodeng
import urllib,urllib2
urllib.getproxies_registry=lambda:{}
request=urllib2.Request('http://www.qiushibaike.com/')
request.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6")
try:
html=urllib2.urlopen(request,timeout=0.01).read()
print html
except Exception,e:
print str(e)
'''
返回结果如下:
>>>
<urlopen error timed out>
'''
如上爬虫中,增加一个timeout参数有什么作用呢? 展开
#Python 2.7
#xiaodeng
import urllib,urllib2
urllib.getproxies_registry=lambda:{}
request=urllib2.Request('http://www.qiushibaike.com/')
request.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6")
try:
html=urllib2.urlopen(request,timeout=0.01).read()
print html
except Exception,e:
print str(e)
'''
返回结果如下:
>>>
<urlopen error timed out>
'''
如上爬虫中,增加一个timeout参数有什么作用呢? 展开
3个回答
展开全部
1、调用test函数超时监控,使用sleep模拟函数执行超时
2、引入signal模块,设置handler捕获超时信息,返回断言错误
3、alarm(3),设置3秒闹钟,函数调用超时3秒则直接返回
4、捕获异常,打印超时信息
程序执行结果:
1 within time
2 within time
3 timeout
4 within time
5 within time
6 within time
7 timeout
8 within time
9 within time
2、引入signal模块,设置handler捕获超时信息,返回断言错误
3、alarm(3),设置3秒闹钟,函数调用超时3秒则直接返回
4、捕获异常,打印超时信息
程序执行结果:
1 within time
2 within time
3 timeout
4 within time
5 within time
6 within time
7 timeout
8 within time
9 within time
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
防止网络很卡的时候,程序一直卡在这个地方没有反应,也不向下执行,可以看、
网页链接这个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询