在Python 中最佳化HTTP 要求
在Python 中快速發送大量HTTP 請求的需求經常出現,尤其是在處理大型資料集時。然而,在 Python 的各種並發和執行緒選項中選擇最有效的方法可能具有挑戰性。一個可行的解決方案在於利用簡單而有效的方法。
高效的 HTTP 請求實作
以下程式碼範例了 Python中的高效實作(2.6相容性):
import urlparse from threading import Thread import httplib, sys from Queue import Queue concurrent = 200 def doWork(): while True: url = q.get() status, url = getStatus(url) doSomethingWithResult(status, url) q.task_done() def getStatus(ourl): try: url = urlparse(ourl) conn = httplib.HTTPConnection(url.netloc) conn.request("HEAD", url.path) res = conn.getresponse() return res.status, ourl except: return "error", ourl def doSomethingWithResult(status, url): print status, url q = Queue(concurrent * 2) for i in range(concurrent): t = Thread(target=doWork) t.daemon = True t.start() try: for url in open('urllist.txt'): q.put(url.strip()) q.join() except KeyboardInterrupt: sys.exit(1)
說明
這種最佳化的解決方案優於傳統方法,採用了平衡資源使用和任務執行速度的簡化方法。
以上是如何在 Python 中優化 HTTP 請求以實現高效的資料處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!