[問題] 某段程式讀取太久自動跳過

看板Python作者 (洨大魯蛇ㄍ)時間5年前 (2020/03/05 13:55), 編輯推噓1(1012)
留言13則, 4人參與, 5年前最新討論串1/1
在爬蟲抓網頁 執行某段 抓某頁的時候可能讀取很久 有沒有指令可以設定某一段指令若跑超過x秒 自動跳過 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.113.40 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1583387750.A.0B1.html

03/05 14:28, 5年前 , 1F
import time
03/05 14:28, 1F

03/05 14:29, 5年前 , 2F
limit_time = time.time() + TIMEOUT
03/05 14:29, 2F

03/05 14:29, 5年前 , 3F
if time.time() > limit_time:
03/05 14:29, 3F

03/05 14:31, 5年前 , 4F
這作法比較簡單,也可以用 theading 的 Timer
03/05 14:31, 4F

03/05 14:32, 5年前 , 5F
不過等你爬蟲複雜起來再考慮吧
03/05 14:32, 5F

03/05 14:34, 5年前 , 6F
卡某種I/O包括網路的話,感覺都是thread出去比較好,上面
03/05 14:34, 6F

03/05 14:35, 5年前 , 7F
推文第一種方法用在很多小行為其實都跑很快但累積時間很久
03/05 14:35, 7F

03/05 14:35, 5年前 , 8F
的情況,但如果單單某個讀取動作就卡很久就不是第一種方法
03/05 14:35, 8F

03/05 14:36, 5年前 , 9F
能處理的了,這時就給他一個thread讓他自己去跑吧
03/05 14:36, 9F

03/05 14:37, 5年前 , 10F
不過代價就是複雜性變高了,有必要才用
03/05 14:37, 10F

03/05 14:56, 5年前 , 11F
scrapy用DOWNLOAD_TIMEOUT 設定
03/05 14:56, 11F

03/05 14:58, 5年前 , 12F
然後用scrapy的errback去exception
03/05 14:58, 12F

03/05 16:18, 5年前 , 13F
如果是用 requests 可以 requests.get(url,timeout=30)
03/05 16:18, 13F
文章代碼(AID): #1UO9Hc2n (Python)
文章代碼(AID): #1UO9Hc2n (Python)