關於python request請求出現時間過長的處理
阿新 • • 發佈:2020-12-22
1. 問題:
使用 python requests get請求https://m.ximalaya.com/down,執行下載,並對內容進行處理,出現時長大與900多秒,影響效能
2. 問題復現
- 執行程式碼:
import requests import time url = "https://m.ximalaya.com/down" start = time.time() res = requests.get(url) a = res.content print(time.time() - start) start = time.time() res.text print(time.time())
- 執行結果:
3. 問題分析:
- requests.get(url) 10s 左右, 可以接受
- 再由位元組碼轉為text,910秒,花費時間過程 => 造成程式過慢
- 同時通過下面原始碼,發現每呼叫一次 res.text 需要一次編碼轉譯,造成時間成倍增加
4.解決方案:
- poc 外掛對請求相應header 做型別判斷,丟棄適當的型別(二進位制,word,execl,ppt, pdf,音訊,視訊,圖片等檔案)
- 在外掛分析過程中,避免減少過程呼叫 .text 次數
- 在外掛分析請求返回body過程中,使用位元組碼分析,代替文字格式分析