是為了防止url不可訪問,或者響應速度太慢而造成的時間浪費。
比如,你要爬取1000個網站,如果有100個需要30s才能返回數據,
你等待他們返回的話就需要3000s了,如果你設置10s超時,那么就能知道最長需要多久1000個可以爬完。
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