HTTP-Anfragen in Python optimieren
In Python besteht häufig die Notwendigkeit, zahlreiche HTTP-Anfragen schnell zu senden, insbesondere wenn es um große Datensätze geht. Allerdings kann es schwierig sein, aus den verschiedenen Parallelitäts- und Threading-Optionen in Python den effizientesten Ansatz auszuwählen. Eine praktikable Lösung liegt in der Verwendung einer einfachen, aber effektiven Methode.
Effiziente Implementierung von HTTP-Anfragen
Der folgende Code veranschaulicht eine hocheffiziente Implementierung in Python (2.6 Kompatibilität):
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)
Erklärung
Diese optimierte Lösung übertrifft herkömmliche Methoden und nutzt einen optimierten Ansatz, der die Ressourcennutzung und die Geschwindigkeit der Aufgabenausführung in Einklang bringt.
Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Anfragen in Python für eine effiziente Datenverarbeitung optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!