1. 程式人生 > 實用技巧 >關於python request請求出現時間過長的處理

關於python request請求出現時間過長的處理

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過程中,使用位元組碼分析,代替文字格式分析