Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh mengoptimumkan permintaan HTTP dalam Python untuk pemprosesan data yang cekap?
Mengoptimumkan Permintaan HTTP dalam Python
Keperluan untuk menghantar banyak permintaan HTTP dengan pantas dalam Python sering timbul, terutamanya apabila berurusan dengan set data yang besar. Walau bagaimanapun, memilih pendekatan yang paling cekap di tengah-tengah pelbagai pilihan concurrency dan threading dalam Python boleh menjadi mencabar. Satu penyelesaian yang berdaya maju terletak pada penggunaan kaedah yang mudah tetapi berkesan.
Pelaksanaan Permintaan HTTP yang Cekap
Kod berikut menunjukkan pelaksanaan yang sangat cekap dalam Python (2.6 keserasian):
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)
Penjelasan
Penyelesaian yang dioptimumkan ini mengatasi kaedah tradisional, menggunakan pendekatan diperkemas yang mengimbangi penggunaan sumber dan kelajuan pelaksanaan tugas.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengoptimumkan permintaan HTTP dalam Python untuk pemprosesan data yang cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!